3

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

我想检查应用程序是否正在运行或不在服务中。我为此使用了以下代码。

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

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

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

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

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

4

1 回答 1

7

你可以试试这个代码,它给出了当前活动屏幕的包:

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" />
于 2012-06-28T14:34:25.843 回答