Android: обнаружение, когда запускается другая активность (или ваша активность теряет фокус) - PullRequest
10 голосов
/ 04 декабря 2009

Как видно из названия, мне нужно определить, когда мое приложение теряет фокус, потому что другое приложение запускается (поступает телефонный звонок, или пользователь нажимает кнопку Дом и т. Д.).

Переопределение Activity.OnStop не работает, потому что это вызывается даже при переключении действий в моем приложении.

Ответы [ 3 ]

5 голосов
/ 04 декабря 2009

Я думаю, вы могли бы использовать:

onWindowsFocusChanged (boolean hasFocus)

от вашей активности.

3 голосов
/ 04 декабря 2009

AFAIK Android не предлагает никаких средств для этого. Вы можете отслеживать это самостоятельно (например, если onStop() в одном из ваших действий вызывается, а onStart() в другом из ваших действий не вызывается в течение X периода времени, предположительно, активность какого-то другого приложения находится на переднем плане ).

2 голосов
/ 17 октября 2013

С ICS вверх это возможно.

Это взято с сайта Android:

Чтобы получать уведомления о выходе пользователя из вашего интерфейса, выполните Обратный вызов onTrimMemory () в ваших классах Activity. Вы должны использовать этот метод для прослушивания уровня TRIM_MEMORY_UI_HIDDEN, который означает, что ваш пользовательский интерфейс теперь скрыт от просмотра, и вы должны освободить ресурсы, которые использует только ваш пользовательский интерфейс.

Обратите внимание, что ваше приложение получает обратный вызов onTrimMemory () с TRIM_MEMORY_UI_HIDDEN только когда все компоненты пользовательского интерфейса вашего приложения процесс стал скрыт от пользователя.

См. Эту страницу для полной информации http://developer.android.com/training/articles/memory.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...