2013-02-11 74 views
1

我目前使用此代码检查特定类:如何检查时运行活动

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 

if(taskInfo.get(0).topActivity.getPackageName().equalsIgnoreCase("com.android.settings")){ 
    ////Do Action  
} 

我能查看当前活动com.android.settings(Android的设置页)。我试图将其替换为com.android.setting包中的特定类文件,例如

if(taskInfo.get(0).topActivity.getPackageName().equalsIgnoreCase("com.android.settings.LocationSettings") || taskInfo.get(0).topActivity.getPackageName().equalsIgnoreCase("com.android.settings/.LocationSettings")){ 
     ////Do Action 

    } 

我的问题是这段代码没有检测到“LocationSettings”。

我指的是Android源代码,以及Cyanogen源码here

回答

0

您正在检查的类(com.android.settings.LocationSettings)不是Activity的子类,因此它不会显示在活动列表中。

另外,getPackageName()只返回包。所以你需要分别检查类名和getClassName()。

+0

是的,这是真的,但我已经尝试过这种方法没有运气... – Nikita 2013-02-11 18:37:53