1 / 1 / 0
Регистрация: 17.08.2012
Сообщений: 62

Завершать активити с внешней кнопкой power в android

27.11.2013, 12:30. Показов 2508. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как можно завершать активити когда я его не выключаю(то есть не завершаю), а именно завершается активити когда я нажимаю на кнопку power и при повторном включении экрана на android активити уже не было???
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.11.2013, 12:30
Ответы с готовыми решениями:

Другой кнопкой из дочерней активности изменить фон той кнопки, которая в родительской активити
Вот такая проблема: у меня в главной активности есть кнопка, как мне другой кнопкой из дочерней активности изменить фон той кнопки, которая...

Активити в Android Studio
Заранее извиняюсь за вопросы от начинающего. Перешел в Delphi на Android Studio, увидел много реализованных полезных активити (Login,...

Ошибка в вызове нового активити в android
Казалось бы, что может быть проще, но ни как не могу осуществить эту функцию в приложении. Учусь по видеоурокам, даже смотрел код на...

4
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
27.11.2013, 13:57
Муратов, пропишите в манифесте это:
XML
1
<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
и завершайте вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_POWER) {
        finish();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
 
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_POWER) {
        finish();
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}
1
1 / 1 / 0
Регистрация: 17.08.2012
Сообщений: 62
27.11.2013, 15:52  [ТС]
что то не получается при нажатии на кнопку power (activity) не завершается! а так всё выставил в манифесте?
0
Android Developer
 Аватар для Wenceslaus
131 / 131 / 6
Регистрация: 05.07.2013
Сообщений: 205
27.11.2013, 19:22
Муратов, вы правы, действительно не работает.. Точнее работает не везде. Есть ещё вариант, который проверил на 2.x, но это тоже не панацея, ибо на 4.х отследить нажатие PowerButton оказалось не реальным..
для любопытных

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
        //...
}
 
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        finish();
        return true;
    }
 
    return super.dispatchKeyEvent(event);
}

Что ж, тут два варианта: либо отказаться от этой затеи, либо искать обходные пути. Например, можно отследить событие затухающего экрана:
Java
1
2
3
4
5
6
7
8
9
public class MyBroadCastReciever extends BroadcastReceiver {
 
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            MainActivity.this.finish();
        } 
    }
}
2
1 / 1 / 0
Регистрация: 17.08.2012
Сообщений: 62
28.11.2013, 08:27  [ТС]
Получилось но чуть по другому!
в методе onCreate
IntentFilter userunlock = new IntentFilter (Intent.ACTION_USER_PRESENT);
registerReceiver(unlockdone, userunlock);

это после метода onCreate
BroadcastReceiver unlockdone = new BroadcastReceiver() {

public static final String present = "android.intent.action.USER_PRESENT" ;

@Override
public void onReceive(Context context, Intent intent) {
//if (!intent.getAction().equals(present)) return;
if (intent.getAction().equals(Intent.ACTION _SCREEN_OFF))
Log.v("dismiss user present","sending to back");

//callback mediator for final handling of the stupid wake lock
Intent i = new Intent("example.gallery1.lifecycle.LOCKS CREEN_EXITED");
getApplicationContext().sendBroadcast(i) ;
//moveTaskToBack(true);
MainActivity.this.finish();

}
};

@Override
public void onDestroy() {
super.onDestroy();
MainActivity.this.finish();
unregisterReceiver(unlockdone);
Log.v("destroy_dismiss","Destroying");

}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2013, 08:27
Помогаю со студенческими работами здесь

Android Studio - подключиться к внешней бд
Как подключиться к внешней базе данных, находящейся на хостинге через андройд приложение. Что за код? И как выполнить запрос select и...

Подключение к внешней БД из приложения на Android
Хочу написать приложение для работы с внешней бд. Плевать на безопасность соединения и прочее. Нужен максимально простой способ хранения...

Android кнопка “войти” работает только в главной активити (Navigation Drawer)
в приложении несколько активити с Navigation Drawer, в nav_header главной сделал onClickListener на кнопку Войти, остальные активити...

Монитор включается только кнопкой POWER
Монитор DNS V2456,видеокарта PCI-E GTX560,подключение через кабель DVI.До сего дня всё работало прекрасно,а сегодня включаю комп,он...

СМА LG F1292MD, Нет отжима, не выключается кнопкой Power
Изначально не включалась. После вскрытия обнаружено кз по 5вольт, заменил 7805. Начала включаться но через секунд 10 выключаться. Обнаружил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru