检查我的申请是否在前面且专注

时间:2014-03-13 16:49:13

标签: android

在我的应用程序中,我收到通知,当我点击它们时,它会打开我的应用程序。如果应用程序处于打开状态并且当前正在运行(我不想在任务管理器中,而是在每个应用程序前面,就像用户在通知发布时使用它一样),我希望他们检查我点击它们,如果运行,那么它将不会重新打开应用程序,但只是删除通知。如果应用程序不在面前,则通知单击将打开它。 如何检查应用程序是否处于此状态?

我尝试过这样的事情,但这会检查应用是否在任务管理器中: 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;
        }

1 个答案:

答案 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?