2011-03-25 27 views
4

我在我的應用程序中有多個活動。 請考慮以下情況......如何知道我的應用程序的活動計數?

活動A調用活動B.乙調用C.當用戶按下返回鍵C生成通知並來到B.現在再次按回來,所以A將被顯示,然後再次返回鍵將終止A以及通知顯示...現在,當用戶按通知圖標活動C得到加載....直到這部分行爲是正確的....現在用戶按下回來,我開始活動A使用我的代碼爲C從通知加載。

另一種情況 活動A調用活動B乙呼叫C.當用戶按下後退鍵C生成通知並來到B.現在用戶按下HOME KEY。然後一段時間後選擇通知圖標,它會顯示活動C.現在用戶按Back鍵,默認情況下它顯示活動B(我想要的)....但我的代碼(作爲C從通知加載)... IM顯示活動A(n用戶按回來,然後顯示活動B)。

我想知道我自己的應用程序的活動計數,以便我可以避免執行我的代碼來啓動活動A(如果它不是1)。

到目前爲止,我已經做到了這一點通過下面的代碼

ActivityManager actM = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
List<ActivityManager.RunningTaskInfo> listm = actM.getRunningTasks(1); 
int iNumActivity = listm.get(0).numActivities; 

但這種代碼的使用需要使用許可GET_TASKS ......我不舒服與此,因爲我不跟蹤任何其他應用程序的數據/活動計數。

如何解決這個問題? 有沒有其他辦法可以達到這個目的?

編輯 如何知道自己的應用程序的活動計數?

回答

0

一種方法是在每個活動中將顯示的Activity從onResume()推送到堆棧(單例)上,並在按下「返回」時彈出它。這樣,只要按下「返回」,您就會知道當前的活動堆棧。由於這將被所有類共享,這將有助於存儲值。

+0

感謝您的建議 – JRC 2011-03-25 08:09:36

+0

旋轉和流程死亡可能會導致此問題 – EpicPandaForce 2015-10-07 21:30:03

1

如果只是計數是問題..在一個類中創建一個靜態計數變量說常量。 或者可能是其中的三個..因此,無論何時你去一個特定的類別..增加相應的靜態公共變量。

編輯:您還可以保留共享首選項中的活動計數。

+0

感謝您的建議。但尋找其他替代 – JRC 2011-03-25 08:10:06

+2

過程中的死亡將使你的計數爲'0' – EpicPandaForce 2015-10-07 21:29:35

相關問題