14

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

例如:包括 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();

然而,这将提供有关正在运行的活动的信息,该活动是最重要的活动。

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

4

2 回答 2

0

我发现本文中记录的 AppLifecycleHandler 是了解正在发生的事情的绝佳解决方案。我主要使用它来保持计数并在用户使用完应用程序后进行清理,但您可以使用存储所有正在运行的活动的数组来实现它,这样您就可以随时调用以了解正在运行的内容。

于 2016-03-12T22:57:51.730 回答
-5

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

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();
    }
于 2013-07-08T09:27:08.693 回答