获取当前运行的应用程

时间:2012-06-28 14:18:57

标签: android detect foreground

我如何获得当前正在运行的应用程序?

我想检查应用程序是否正在运行。 我使用了以下代码。

       ActivityManager activityManager =
       (ActivityManager)
       this.getSystemService(ACTIVITY_SERVICE );

   PackageManager pm =getPackageManager();
   procInfos = activityManager.getRunningAppProcesses();

但即使我按下主屏幕上的按钮,它也会返回几个应用程序的列表。正在运行的应用列表仍在列表中显示它们。但我希望该列表仅显示前景中的应用程序。

那么,如何区分前台和后台运行的应用程序?

或者换句话说,如何检测当前前台运行的应用程序,或者未被销毁的应用程序。我不想让后台运行应用程序。

1 个答案:

答案 0 :(得分:6)

您可以尝试使用此代码,它会显示当前活动屏幕的包:

ActivityManager am = (ActivityManager) this
                .getSystemService(ACTIVITY_SERVICE);

// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);

ComponentName componentInfo = taskInfo.get(0).topActivity;
if(!componentInfo.getPackageName().equals("your.package.name"))
{
    //Do your stuff
}

您可能需要权限

<uses-permission android:name="android.permission.GET_TASKS" />