Я хочу определить, когда мое приложение отправлено на задний план. Есть много вопросов о подключении ключа HOME - я понимаю, что это возможно, только зарегистрировавшись как приложение для запуска.Android-аут-выход, когда приложение переходит на задний план
... НО ... как всегда есть клиент, который хочет определенное поведение ...
У нас есть приложение с повышенными требованиями к безопасности. Клиент хочет, чтобы приложение выходило из сервера, когда приложение переходит в фоновый режим по любой причине (телефонный звонок, HOME-ключ, назад к последнему действию) (* * , чтобы уточнить, что я имею в виду, когда передняя активность на экране не является одним из видов деятельности моего приложения * *).
Итак, если я не могу зацепить ключ ДОМАШЕГО, то какие еще варианты есть? Очевидно, что просто подключение onPause()
не поможет, потому что это Activity
-специфичный.
«Лучший», который мы придумали, состоит в том, чтобы хранить массив ссылок на действия в нашем классе Application. В разделе 8 мы добавим его в этот массив. В onPause()
мы удаляем его. Также в onPause()
мы перечисляем этот массив, чтобы узнать, находится ли какой-либо из зарегистрированных действий на переднем плане. Если активность переднего плана не найдена, пользователь выходит из системы.
Я недоволен этим как решением и надеюсь найти лучший способ.
Я только что добавил новый комментарий к этой теме, где я показываю лучший метод (на мой взгляд), используя Application.ActivityLifecycleCallbacks, а также метод @peceps. См. Мой ответ для потока: http://stackoverflow.com/a/13996042/327386 – RPM
+1 отличное решение для API 14+ –