如何获取我们的应用程序中正在设备上运行的所有活动的列表。
例如:包括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();
但是,这将提供有关作为最高活动的正在运行的活动的信息。
我的想法是白名单正在运行的活动,以便我的第三方应用程序可以在设备上运行它。所以我基本上需要应用程序中的所有运行活动。
答案 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();
}