我正在尝试检查用户是否在收到c2dm消息时正在查看我的应用。如果用户正在查看它,则无需生成通知,否则我将生成通知。在我看来,这似乎是非常微不足道的。但是我在寻找解决方案时遇到了困难。任何帮助将不胜感激。
答案 0 :(得分:1)
如果用户正在查看它,则无需生成通知,否则我将生成通知。
让您的C2DM接收器发送有序广播。让您的活动(或活动)为您的广播注册一个高优先级接收器,他们自己更新并中止广播。为清单中注册的广播设置一个低优先级接收器 - 如果它获得控制权,则将其提升Notification
。
答案 1 :(得分:0)
我唯一能想到的是在onResume()中设置了一些标志,通知会检查...然后清除标志onDestroy或onPause
答案 2 :(得分:-1)
final ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
if (yourActivity.getComponentName() == activityManager.getRunningTasks(1).get(0).topActivity) {
// Activity is currently running
}
这是一种方式。虽然我可能会使用我的活动onStart()
和onStop()
来保存参考。可能还有更简单的方法。