在Android中,我可以使用tis:
等代码获取正在运行的任务和活动(ActivityManager.RunningTaskInfo) this.mActivityManager.getRunningTasks()
然后我可以获得包名,类名等。
我的问题是,是否有办法从中获取“类别”信息?或者任何人都可以建议替代方案?例如,当我启动应用程序时,类别为
cat=[android.intent.category.LAUNCHER]
答案 0 :(得分:1)
我不确定你的意思,但也许你想要的是:通过调用getIntent()
检索活动中的意图,并在Intent对象上调用方法getCategories()
。此方法将返回带有类别字符串的集合。
答案 1 :(得分:0)
我不确定,这是否可以解决您的问题,但您可以使用ActivityManager's getRecentTasks(int, int) API获取有关最近任务的信息。它返回ActivityManager.RecentTaskInfo个对象的列表,其中包含有关用于启动任务的意图的信息。您还可以使用RecentTaskInfo.id
字段将任务映射到正在运行的任务。
答案 2 :(得分:0)
我发现没有直接的做法,但这可能会有所帮助:
Intent ApplicationIntent = new Intent(Intent.ACTION_MAIN);
ApplicationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> LauncherResolves = packageManager.queryIntentActivities(ApplicationIntent, 0);
List<String> AppsList = new ArrayList<String>();
for (int i = 0; i < LauncherResolves.size(); i++)
AppsList.add(LauncherResolves.get(i).activityInfo.name);
List<RunningTaskInfo> runningAppInfo = activityManager.getRunningTasks(10);
for (int i = 0; i < runningAppInfo.size(); i++)
{
if (AppsList.contains(runningAppInfo.get(i).topActivity.getClassName()))
{
// Do what ever you want
}
}