我有6個按鈕,第一個3個按鈕我想開始同樣的活動,其他3個按鈕分開新的活動。如何檢查我開始的活動是否正在運行的活動?
所以問題出現時,我點擊第1個按鈕,然後第二個按鈕,啓動相同的活動,因爲我們無法從同一活動開始相同的活動。
所以我只需要知道天氣,我要開始的活動是同一活動正在運行,基於如果相同的活動,那麼我只是更新一些用戶界面內容,否則開始新的活動。
所以任何人都可以幫助我知道這一點?
我有6個按鈕,第一個3個按鈕我想開始同樣的活動,其他3個按鈕分開新的活動。如何檢查我開始的活動是否正在運行的活動?
所以問題出現時,我點擊第1個按鈕,然後第二個按鈕,啓動相同的活動,因爲我們無法從同一活動開始相同的活動。
所以我只需要知道天氣,我要開始的活動是同一活動正在運行,基於如果相同的活動,那麼我只是更新一些用戶界面內容,否則開始新的活動。
所以任何人都可以幫助我知道這一點?
您可以檢查活動的類,例如(假設 '這個' 是當前活動):
if (this instanceof ActivityClassYouGoingToStart) {
// update UI
} else {
// start new activity
}
以下是使用活動管理器執行此操作的好方法。 您基本上從活動管理器獲取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"
所有活動在相同的任務和相同的應用程序上運行,並且都在我的應用程 –