2013-01-09 126 views
1

我有6個按鈕,第一個3個按鈕我想開始同樣的活動,其他3個按鈕分開新的活動。如何檢查我開始的活動是否正在運行的活動?

所以問題出現時,我點擊第1個按鈕,然後第二個按鈕,啓動相同的活動,因爲我們無法從同一活動開始相同的活動。

所以我只需要知道天氣,我要開始的活動是同一活動正在運行,基於如果相同的活動,那麼我只是更新一些用戶界面內容,否則開始新的活動。

所以任何人都可以幫助我知道這一點?

回答

0

您可以檢查活動的類,例如(假設 '這個' 是當前活動):

if (this instanceof ActivityClassYouGoingToStart) { 
    // update UI 
} else { 
    // start new activity 
} 
0

以下是使用活動管理器執行此操作的好方法。 您基本上從活動管理器獲取runningTasks。它將始終首先返回當前活動的任務。從那裏你可以得到topActivity。

Example here

有越來越從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" 
+0

所有活動在相同的任務和相同的應用程序上運行,並且都在我的應用程 –

相關問題