确定当前设备上是否存在活动

时间:2013-04-21 22:31:36

标签: android android-activity

我想知道Android设备中显示的活动

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

目的是使android服务检查此任务

3 个答案:

答案 0 :(得分:0)

这应该适合你:

Get active Application name in Android

只需使用您想要的功能进行调整,您就可以轻松地进行检查。

答案 1 :(得分: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旗帜。

答案 2 :(得分: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--------------");