2013-02-11 76 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