Как проверить, вернулось ли приложение Android на передний план?

Я должен знать, когда мое приложение возвращается на передний план в следующих ситуациях:

  • Запустить приложение
  • Начать действие А
  • Домашняя прессованная
  • Приложение выведено на передний план пользователем. (Показано действие А)

  • Запустить приложение

  • Начать действие А
  • Начать занятие Б
  • Домашняя прессованная
  • Приложение выведено на передний план пользователем. (Показано действие B)

Я не могу проверить это с помощью флага в onResume и onPause. Потому что это будет срабатывать каждый раз, когда загружается Activity B.


person Klaasvaak    schedule 04.03.2013    source источник
comment
Пожалуйста, проверьте этот вопрос: stackoverflow.com/questions/8489993/   -  person Taras    schedule 04.03.2013
comment
Если я понимаю, что ответ может проверить, находится ли приложение на переднем плане. Нет, если он вернется на передний план.   -  person Klaasvaak    schedule 04.03.2013
comment
Тоже нет. Проблема в большинстве ответов на связанные вопросы заключается в том, что они что-то устанавливают в onResume и удаляют в onPause. Это не работает, потому что это также срабатывает, если действие загружается из другого действия.   -  person Klaasvaak    schedule 04.03.2013


Ответы (1)


Я не уверен, что это сработает, но попробуйте переопределить onUserLeaveHint вашего Activity: https://developer.android.com/reference/android/app/Activity.html#onUserLeaveHint()

Если это вызывается, установите для логического поля вашего Activity значение true. Когда вызывается onResume, проверьте это логическое значение. Если это правда, то ваш Activity возвращается на передний план (не забудьте снова установить для этого логического значения значение false).

Кстати: мне нравится твоя ручка KlaasVaak :). Вы пытаетесь заставить людей спать :)

person Streets Of Boston    schedule 04.03.2013
comment
Это работает, если пользователь нажимает кнопку «Домой», но условие также срабатывает, когда пользователь просто переключается на другое приложение, а затем обратно. Только Клаасваак может ответить, соответствует ли это его требованиям или нет ;-) - person Emanuel Moecklin; 04.03.2013
comment
onUserLeaveHint также вызывается, когда действие запускается для получения результата. Например камера. Таким образом, это вызовет возвращение на задний план. Я не вижу в этом возвращения из прошлого. - person Klaasvaak; 07.03.2013