在我的应用程序中,我收到通知,当我点击它们时,它会打开我的应用程序。如果应用程序处于打开状态并且当前正在运行(我不想在任务管理器中,而是在每个应用程序前面,就像用户在通知发布时使用它一样),我希望他们检查我点击它们,如果运行,那么它将不会重新打开应用程序,但只是删除通知。如果应用程序不在面前,则通知单击将打开它。 如何检查应用程序是否处于此状态?
我尝试过这样的事情,但这会检查应用是否在任务管理器中: public boolean isProcessRunning(String process){
ActivityManager activityManager = (ActivityManager) getApplicationContext()
.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> procInfos = activityManager
.getRunningAppProcesses();
for (int i = 0; i < procInfos.size(); i++) {
if (procInfos.get(i).processName
.equals("com.myapp")) {
return true;
}
}
return false;
}
答案 0 :(得分:1)
您是否尝试将boolean isActivityInForeground添加到onResume方法中设置为true的活动中,并在onPause方法中设置为false?
生命周期图表:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
更新:如果您有多项活动,请尝试以下评论中引用的此共享对象方法:How to check if activity is in foreground or in visible background?