0

我想知道 android 设备中正在显示什么活动

如果我要搜索的活动我执行代码如果不是我执行另一个代码

目的是制作一个android服务来检查这个任务

4

3 回答 3

0

我发现这段代码效果很好

Log.i("---------------", "----------onCreate--------------");

        Log.i("-----test------", "----------1--------------");
         ActivityManager am = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE);
         Log.i("-----test------", "----------2-------------");
           List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
           Log.i("-----test------", "---------3--------------");
            ComponentName componentInfo = taskInfo.get(0).topActivity;
            Log.i("-----test------", "----------4--------------");
            Log.i("------------------", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName()+"   Package Name :  "+componentInfo.getPackageName());
            Log.i("-----test------", "----------5--------------");
于 2013-04-21T23:17:33.087 回答
0

这应该适合你:

在 Android 中获取活动的应用程序名称

只需使用您想要的功能对其进行调整,您应该可以很容易地进行检查。

于 2013-04-21T22:46:59.757 回答
0

你确定那是你想要的吗?

目的是制作一个android服务来检查这个任务

如果您告诉我们您的“目的”背后的原因是什么,我几乎可以肯定我们可以帮助您以更好的方式做您想做的事(可能我们可以找到一种方法可以减少电池浪费并且减少您的敌意用户)。

无论如何,这是您问题的答案:

使用ActivityManager 的getRunningTasks获取最近启动的活动列表。

公共列表 getRunningTasks (int maxNum)

返回当前正在运行的任务的列表,最近的是第一个,之后是较旧的。请注意,“正在运行”并不意味着任务的任何代码当前已加载或处于活动状态——该任务可能已被系统冻结,以便在下次进入前台时可以以之前的状态重新启动它。

您可能还想使用该标志RECENT_WITH_EXCLUDED来确保您获得所有活动,即使是那些故意将自己排除在该列表之外的活动。

public static final int RECENT_WITH_EXCLUDED

在 API 级别 1 中添加标志用于getRecentTasks(int, int):返回所有任务,即使是那些设置了 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS标志的任务。

于 2013-04-21T22:48:02.090 回答