使用Android平台,当我通过GCMIntentService收到推送通知时,我想要知道我的应用程序是否打开。因为如果我的应用程序打开时,用户点击通知时我想什么都不做,但是如果应用程序关闭了,我想要打开应用程序。
使用Android平台,当我通过GCMIntentService收到推送通知时,我想要知道我的应用程序是否打开。因为如果我的应用程序打开时,用户点击通知时我想什么都不做,但是如果应用程序关闭了,我想要打开应用程序。
启动根活动(在清单中具有ACTION=MAIN和CATEGORY=LAUNCHER)并添加Intent.FLAG_ACTIVITY_NEW_TASK
。如果应用程序已经处于活动状态(无论顶部是哪个活动),这只会将任务带到前面。如果应用程序不处于活动状态,则会使用您的根活动启动它。
1 :
static boolean check_running mode = false;
-------------------
2:
@Override
protected void onResume() {
super.onResume();
check_running mode = true;
}
@Override
protected void onPause() {
check_running mode = false;
super.onPause();
}
---------------------
3 :
if (check_running mode) {
showUserView();
}
else {
showNotification();
}
public static boolean isAppRunning(Context context) {
// check with the first task(task in the foreground)
// in the returned list of tasks
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager
.getRunningTasks(Integer.MAX_VALUE);
if (services.get(0).topActivity.getPackageName().toString()
.equalsIgnoreCase(context.getPackageName().toString())) {
// your application is running in the background
return true;
}
return false;
}