2013-03-14 26 views
2

在我的應用程序中,我在後臺服務中檢查頂級活動名稱,並在默認情況下在頂級活動不是android中的選擇器活動時調用函數。我發現活動名稱爲「com.android.internal.app.ChooserActivity」。所以我對它進行硬編碼並檢查。一切工作正常。但是當該活動名稱發生變化時會發生什麼(由google更改)。所以我的問題是,有沒有辦法在運行時獲得選擇器活動?在android源代碼中獲取選擇器活動名

回答

0

在後臺服務中運行一個線程,通過ApplicationManager獲取活動的頂部,然後您可以在運行時比較活動的頂部。

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 



// get the info from the currently running task 
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 

Log.d("topActivity", "CURRENT Activity ::" 
     + taskInfo.get(0).topActivity.getClassName()); 

ComponentName componentInfo = taskInfo.get(0).topActivity; 

componentInfo.getPackageName(); 您將需要下列權限上您的清單:

使用許可權的android:NAME =「android.permission.GET_TASKS」

+0

那是什麼,我現在幹什麼。我需要一個答案,我如何在運行時得到選擇器的活動名稱... – LincyTonita 2013-03-14 11:08:01

+0

我添加了如何得到它..試試.. – 2013-03-15 05:55:47