我很难找到真正的解决方案。我搜索了很多但我无法找到解决问题的好办法。
我想在用户点击通知时执行一些操作。所以我必须检查应用程序是在后台还是前台。如果它在前台,那么哪个活动正在运行?必须有简单的方法来找到它。
请指导我。任何帮助将不胜感激。
答案 0 :(得分:1)
您应该在应用程序的两个位置收听:
总结解决方案有几个答案:
Android: how do I check if activity is running?
Checking if an Android application is running in the background
答案 1 :(得分:1)
因为如果应用程序在后台,则显示通知,否则显示警告。
然后你不关心“应用程序是在后台还是前台”或“如果它在前台,那么哪个活动正在运行”。
您只关心,当事件发生时,前台UI处理它(如果有前景UI),或者您显示Notification
。
一种方法是在几年前使用有序广播,如I blogged about。这是一个演示此的示例应用程序。基本上,服务(?)发送有序广播。当UI在前台时,UI具有用于该广播的高优先级接收器,并且它中止广播并消费该事件。您还有一个低优先级接收器,只有在UI不消耗该事件时才会获得控制权,它将显示Notification
。