2014-02-20 41 views
0

我們正在開發一個公平的複雜Android應用程序,其中包含多個不同的活動。有沒有辦法確定哪些是當前的?如何確定Android中的「頂級」活動

這似乎是一個簡單的事情,但我甚至不知道要搜索什麼關鍵字。

+0

我想知道,從你要去哪裏搜索最頂級的活動。 –

回答

1

這是我的方法:

ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
//Get the info from the currently running task. 
List<ActivityManager.RunningTaskInfo> taskInfo = activityManager.getRunningTasks(1); 
Log.d(TAG, "TOP Activity ::" + taskInfo.get(0).topActivity.getClassName()); 

Perrmission需要AndroidManifest.xml

<uses-permission android:name="android.permission.GET_TASKS"/> 

更多信息:How to get the current top most activity?

+0

我找到了一個ActivityManager代碼的例子,但是沒有提到所有必要的權限。謝謝!! – Rich

+0

請注意,如果需要'GET_TASKS'權限,大多數用戶都不會喜歡你的應用。這被認爲是非常危險和可疑的,並使您的應用看起來像間諜軟件。耶穌的回答更好,因爲你不需要任何特殊的權限。 –

1

研究Application類並創建您自己的自定義類擴展應用程序。在應用程序類,添加一個字段Activity currentActivity;

在OnCreate(),你盡一切活動的,你應該做

CustomApp app = (CustomApp)getApplication(); 
app.currentActivity = this; 

或者更好地創造一個BaseActivity延伸活動,讓你的活動,所以你不需要擴展BaseActivity寫在每一個onCreate

你可以檢查哪些活動是最想要的地方。

問候