【发布时间】:2014-09-12 10:53:57
【问题描述】:
我是一个 android 新手,我真的需要你的帮助。在推送通知 (GCMintentservice) 上,我可以使用待处理的意图来做一些事情。但我想在状态栏中显示弹出窗口或活动而不是推送通知消息。也就是说,如果应用程序正在运行,用户将显示一个活动,而不是状态栏上的消息。我知道它不推荐。但这可能吗?任何帮助表示赞赏。
提前致谢
【问题讨论】:
我是一个 android 新手,我真的需要你的帮助。在推送通知 (GCMintentservice) 上,我可以使用待处理的意图来做一些事情。但我想在状态栏中显示弹出窗口或活动而不是推送通知消息。也就是说,如果应用程序正在运行,用户将显示一个活动,而不是状态栏上的消息。我知道它不推荐。但这可能吗?任何帮助表示赞赏。
提前致谢
【问题讨论】:
是的!有可能的。从 GCM 接收推送消息时,使用以下方法:
public boolean isForeground(String myPackage) {
ActivityManager manager = (ActivityManager) ctx
.getSystemService(Activity.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager
.getRunningTasks(1);
ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
if (componentInfo.getPackageName().equals(myPackage))
return true;
return false;
}
你会知道你的应用是前台还是后台。如果是背景,则显示通知,否则显示AlertDialog。
上面的方法需要这个权限:
<uses-permission android:name="android.permission.GET_TASKS" />
【讨论】: