检查运行活动时如何检查特定类

时间:2013-02-11 11:18:48

标签: android android-activity

我目前正在使用此代码:

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

1 个答案:

答案 0 :(得分:0)

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

此外,getPackageName()仅返回包。因此,您需要分别针对getClassName()检查类名。