如何检查我的应用程序是否在前台?

时间:2014-04-14 13:41:10

标签: java android

我正在运行我的Android应用程序。

我想仅在应用不可见时启用推送通知

(关闭或在后台)。

我看过这段代码:

  ActivityManager activityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
    List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
    for(int i = 0; i < procInfos.size(); i++){
        if(procInfos.get(i).processName.equals("com.android.browser")) {
            Toast.makeText(getApplicationContext(), "Browser is running", Toast.LENGTH_LONG).show();
        }
    }

用于检查浏览器是否已打开,

但是我不能检查过程是否开启,

它可以正在运行,但此刻不可见,

我希望在这种情况下显示的通知与它何时可见相反。

2 个答案:

答案 0 :(得分:1)

在这种情况下您可以遵循的方法是:

发布发布通知的服务。和onStart()onResume(),停止服务并onPause()onStop(),再次启动服务。

答案 1 :(得分:1)

查看此答案:https://stackoverflow.com/a/12675356/3432809 - 但请注意警告

其他选项是在共享位置(例如,Application对象)中跟踪您的活动,以便每个onResume()调用设置一个活动正在运行的标志,并且onPause()清除该标志。