Определите, если приложение на переднем плане - это осуждается?
Есть много причин, почему нужно определить, находится ли приложение на переднем плане. например - как триггер для GCM / C2DM push-уведомлений - лотУ приложений будет хорошая причина для реализации другого поведения, когда приложение находится на переднем плане и на заднем плане. Другая причина может быть - отключение сервисов, потребляющих драгоценные ресурсы, таких как, например, запрос серверов в фоновой задаче.
Просто быть чистым:определение (как я вижу это) для фонового приложения:
приложение, которое ни одна из его деятельности не вызываетсяonStart()
метод, и еще не вызыватьonStop()
метод. тот's потому что активность видна пользователю в ее жизненном цикле только в это время.
С другой стороны -
Похоже, Google нене хочу, чтобы приложение реагировало на кнопку домой (этоне является частью API)
реагируя наonBackPressed()
на "root / main " активность как индикатор уходаActivity
конечно, не очень хорошая идея (потому что многие пользователи используют кнопку «домой», а не кнопку «Назад»)
в API нет метода, позволяющего определить, находится ли приложение на переднем плане (согласно моему определению ..)
если бы я нечто-то упустить в API, и этоэто действительно так -Почему нет, почему легко определить, является ли приложение на переднем плане или нет ???? !!!!
что я знаю, я могу сделать чтобы определить, является ли приложение передним планом, описанным в этой теме -Как определить, когда приложение Android переходит в фоновый режим и возвращается на передний план
но, как сказал Эмиль, этотребует особого разрешения или требует некоторой хитрой логикикоторые очень быстро становятся проблематичными в обслуживании, и это пахнет как плохой подход (хотя эточто яя делаю сейчас, потому что я нене имею лучшей идеи ...)
мои вопросы в основном:
Нет ли такого метода API по уважительной причине?
Учитывает ли приложение приоритет или плохой подход?
Есть ли другой способ узнать, является ли приложение на переднем плане или нет?