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

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();

这将提供关于当前处于顶部的活动的信息。

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


您是仅寻求编码解决方案,还是第三方应用程序也能解决问题? - Chucky
在这种情况下,这听起来很有前途 http://www.activity-logger.com/features-android.html - Chucky
我需要在我的Android设备上安装它吗?我的应用程序正在运行。 - My God
这需要exe文件,但我的应用程序是安卓应用,即apk文件。 - My God
我还没有阅读文档,但我会假设它必须是在调试Android应用程序时在您的PC上运行的文件。 - Chucky
2个回答

0

我发现这篇文章中所记录的AppLifecycleHandler是一个非常好的解决方案,可以了解应用程序正在发生什么。我主要使用它来计数和清理用户使用应用程序时完成的操作,但您也可以使用数组实现,将所有正在运行的活动存储在其中,以便随时调用查找正在运行的内容。


-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();
    }

7
这似乎列出了当前运行应用程序中的所有活动,而不是设备上的。 - Tash Pemhiwa
15
运行该应用程序时,它会列出清单中的所有活动,而不仅仅是所有正在运行的活动。 - Gunnar Karlsson
2
似乎这不是正确的答案,因为文档说:在<application>下包含所有<activity>标签的数组,如果没有,则为null。仅在设置了GET_ACTIVITIES标志时才会填充此内容。 - Kitesurfer
3
这是错误的,因为它返回了所有活动的列表。 - Sandeep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接