Вопрос:
Привет У меня есть приложение с более чем 20 активностями. Я хочу закрыть свое приложение, когда нажата кнопка “Домой”.
Лучший ответ:
В Android нет понятия “закрыть мое приложение”. Android избавится от ваших действий, а затем ваш процесс, после некоторого периода бездействия со стороны пользователя.
Ответ №1
Вы можете использовать флаги launchMode и clearTaskOnLaunch в своей корневой активности из вашего AndroidManifest.xml:
android:launchMode=»singleTask» android:clearTaskOnLaunch=»true»
Когда вы снова запустите свое приложение, все действия будут убиты.
Ответ №2
Вы не хотите делать System.exit() – это не так, как обычно работает жизненный цикл Android активности (читайте this).
Что вам нужно сделать, это переместить приложение на задний план с помощью moveTaskToBack(). Затем Android будет поддерживать ваше приложение в фоновом режиме и убить его, если оно не используется, и что-то нуждается в его ресурсах позже.
Если вы хотите закрыть все открытые действия, когда ваше приложение больше не видно, вы можете установить noHist = “True” для всех дочерних действий (оставите основное действие с noHist = “False”, хотя). Это приведет к тому, что вместо возобновления вашего приложения в последнем действии, на котором они были, он откроет его в “основной” активности (т.е. Будет, как если бы они просто перезапустили приложение).
В любом случае, прочитайте следующие ответы для получения дополнительной информации: Закрыть приложение и запустить главный экран Android
Ответ №3
У меня та же проблема. Я пишу банковское приложение, и по контракту мне необходимо выйти из системы (или выйти), когда приложение будет помещено в фоновое изображение. Существуют очевидные проблемы с безопасностью.
Есть несколько способов, которые я хотел бы сделать:
1. Кнопка “Перехватить домашнюю кнопку” (и кнопку “Назад” для активности корня) нажмите события, чтобы вызвать выход из системы и/или закончить()
2. В методе onStop() для каждого действия определите, остановлена ли активность из-за нового действия, показываемого – если нет, предположите, что приложение помещается в фоновый режим, поэтому выйдите из системы и/или закончите()
Первый может не работать, если уведомление доставляется на передний план, а затем пользователь нажимает на него (я еще не исследовал его). Или, возможно, есть другие способы добавления приложения в фоновом режиме, не нажимая эти кнопки.
Второй способ звучит грязно и сложно поддерживать
Id приветствую любые другие идеи
Портьеры
Я знаю, что андроид был разработан таким образом, но кажется наивным думать, что приложениям не требуется событие applicationOnStop
Ответ №4
Привет, ребята, я понял, что вам нужно знать, когда приложение идет в фоновом режиме и как его обнаружить, и если я ошибаюсь, PLZ исправьте меня —-
-
Пользователь может пойти в фоновом режиме, если приложение ur не предоставляет никакого способа, нажав клавишу “Назад” или “Домашний ключ”.
-
Вам нужно использовать методы “dispatchKeyEvent (событие KeyEvent)”, чтобы получить событие основного ключа или событие back key, и после получения события вы можете выполнить свою задачу.
-
вы даже можете ограничить пользователя нажатием любой клавиши, но вы не можете управлять домашним ключом.