В принципе, я хочу узнать, когда запускается другое приложение, поэтому я могу настроить приложение в определенном порядке. Например, если пользователь запускает приложение GMail, моя служба может обнаружить это и отреагировать.
Моя нынешняя идея - проверить "topActivity" для каждого элемента в getRunningTasks()
из класса ActivityManager
. Но это звучит довольно дорого, так как он должен постоянно проверяться в фоновом режиме (и я довольно суетлив к использованию процессора моим приложением).
Если кто-то знает лучший способ, я бы хотел его услышать!
Существует не способ сделать так, что "хороший способ" означает BroadcastListener, так как аплодисменты не транслируются. Единственный способ - запустить службу, которая проверяет getRunningTasks()
(Чтобы не загружать CPU слишком много, вы также можете проверить, какое приложение находится на переднем плане. Я буду искать код, если вы заинтересованы в этой технике)
Проведите проверку обслуживания с интервалом 5-10 секунд. Также отключите службу в SCREEN_OFF и перезапустите ее на SCREEN_ON.
Извините, но для этого нет другого способа.