[英]How to check whether the activity I am starting is the activity which is running?
我有6個按鈕,對於第1個3個按鈕,我想開始相同的活動,對於其他3個按鈕,則要分開新的活動。
因此,當我單擊第一個按鈕然后單擊第二個按鈕開始相同的活動時,就會出現問題,因為我們無法從相同的活動開始相同的活動。
所以我只需要知道天氣,我將要開始的活動就是正在運行的相同活動,因此,如果相同的活動,那么我將只更新一些UI內容,否則將開始新的活動。
所以有人可以幫助我知道這一點嗎?
這是使用活動管理器的一種好方法。 基本上,您可以從活動管理器中獲取runningTasks。 它將始終始終首先返回當前活動的任務。 從那里您可以獲取topActivity。
有一種簡單的方法可以從ActivityManager服務獲取正在運行的任務列表。 您可以請求手機上運行的最大任務數,默認情況下,將首先返回當前活動的任務。
一旦有了,就可以通過從列表中請求topActivity來獲得ComponentName對象。
這是一個例子。
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();
您需要在清單上具有以下權限:
uses-permission android:name="android.permission.GET_TASKS"
例如,您可以檢查活動的類別(假設“ this”是當前活動):
if (this instanceof ActivityClassYouGoingToStart) {
// update UI
} else {
// start new activity
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.