我们的应用程序中正在设备上运行的所有活动的列表

时间:2013-07-05 10:27:50

标签: android activity-manager

如何获取我们的应用程序中正在设备上运行的所有活动的列表。

例如:包括pdf生成和电子邮件活动。

我可以使用以下代码检查活动:

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

     // get the info from the currently running task

     List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);

     Log.d("topActivity", "CURRENT Activity ::"

             + taskInfo.get(0).topActivity.getClassName());

     ComponentName componentInfo = taskInfo.get(0).topActivity;

   componentInfo.getPackageName();

但是,这将提供有关作为最高活动的正在运行的活动的信息。

我的想法是白名单正在运行的活动,以便我的第三方应用程序可以在设备上运行它。所以我基本上需要应用程序中的所有运行活动。

2 个答案:

答案 0 :(得分:0)

我发现this post中记录的AppLifecycleHandler是一个很好的解决方案,可以帮助您了解正在发生的事情。我主要使用它来保持用户使用应用程序时的计数和清理,但您可以使用一个数组来实现它,您可以在其中存储所有正在运行的活动,这样您就可以随时调用以查找正在运行的内容

答案 1 :(得分:-4)

这是获取应用程序中所有正在运行的活动的方法 -

try {
    ActivityInfo[] list = getPackageManager().getPackageInfo(getPackageName(),PackageManager.GET_ACTIVITIES).activities;

        for(int i = 0;i< list.length;i++)
        {
            System.out.println("List of running activities"+list[i].name);

        } 
    }

    catch (NameNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }