Я знаю, что в Android нет onPause на уровне приложения, как у Activity есть onPause, но похоже, что мне нужна аналогичная функциональность. Некоторое время назад я задал (тупой) вопрос (http://stackoverflow.com/questions/9508301/checking-the-manner-in-what-an-activity-has-been-reanimated) и понял, что onPause/onResume даст мне то, что я ищу: возможность узнать, была ли активность переведена в фоновый режим (через кнопку «Домой», открытие другого приложения, спящий режим и т. д.).
Проблема в том, что onPause также срабатывает в действии, когда я перехожу от одного действия в своем приложении к другому. Итак, я иду по пути поиска КАЖДОГО способа, которым пользователь может перейти от Activity к Activity в моем приложении (а их где-то от 15 до 25), и устанавливаю флаг прямо перед каждым инициированным пользователем переключением Activity. Затем в onResume я проверяю этот флаг, и если это X, я знаю, что это было onResume, инициированное пользователем. Если флаг Y, я знаю, что это результат нажатия кнопки «Домой», телефона в спящем режиме и т. д.).
Это только кажется большим грязным kludge. Есть ли способ лучше?
(Я добавляю это, чтобы помочь, а не путать: моя цель - иметь (очень раздражающий, я знаю) экран с кодом доступа, который появляется каждый раз, когда приложение уходит с переднего плана по любой причине (даже экран спать). Я планировал используйте onPause/onResume, чтобы проверить, когда вставлять действие с паролем, но onPause срабатывает каждый раз, когда я меняю действия, и поэтому мне нужно добавить больше.)