Определите, если приложение на переднем плане - это осуждается?

Есть много причин, почему нужно определить, находится ли приложение на переднем плане. например - как триггер для GCM / C2DM push-уведомлений - лотУ приложений будет хорошая причина для реализации другого поведения, когда приложение находится на переднем плане и на заднем плане. Другая причина может быть - отключение сервисов, потребляющих драгоценные ресурсы, таких как, например, запрос серверов в фоновой задаче.

Просто быть чистым:определение (как я вижу это) для фонового приложения:

приложение, которое ни одна из его деятельности не вызываетсяonStart() метод, и еще не вызыватьonStop() метод. тот's потому что активность видна пользователю в ее жизненном цикле только в это время.

С другой стороны -

Похоже, Google нене хочу, чтобы приложение реагировало на кнопку домой (этоне является частью API)

реагируя наonBackPressed() на "root / main " активность как индикатор уходаActivity конечно, не очень хорошая идея (потому что многие пользователи используют кнопку «домой», а не кнопку «Назад»)

в API нет метода, позволяющего определить, находится ли приложение на переднем плане (согласно моему определению ..)

если бы я нечто-то упустить в API, и этоэто действительно так -Почему нет, почему легко определить, является ли приложение на переднем плане или нет ???? !!!!

что я знаю, я могу сделать чтобы определить, является ли приложение передним планом, описанным в этой теме -Как определить, когда приложение Android переходит в фоновый режим и возвращается на передний план

но, как сказал Эмиль, этотребует особого разрешения или требует некоторой хитрой логикикоторые очень быстро становятся проблематичными в обслуживании, и это пахнет как плохой подход (хотя эточто яя делаю сейчас, потому что я нене имею лучшей идеи ...)

мои вопросы в основном:

Нет ли такого метода API по уважительной причине?

Учитывает ли приложение приоритет или плохой подход?

Есть ли другой способ узнать, является ли приложение на переднем плане или нет?

Ответы на вопрос(3)

Ваш ответ на вопрос