2012-08-06 47 views
26

可以說,我有一個菜單基本活動,當我點擊菜單項,它進入活動A.我再次打開菜單,然後轉到B.從BI回去A,和背部和第四像這一段時間。android:noHistory =「true」如何工作?

因此,堆棧將是A,B,A,B,A,B,....當我按下後退按鈕時,它會按預期往回穿過堆棧。

但是可以說我不想要這個功能,所以我將添加到我的清單,android:noHistory="true"。所以當我點擊後退按鈕時,它會退出應用程序,而不是通過堆棧。

現在的錯覺使得它看起來,可以說,如果我在活性的是,我用的菜單進入活動B,棧也只是B,因爲我不能回去A.

但是,在使用noHistory="true"時,是否存在A,B,A,B,A,B的真實堆棧?相反,每次使用菜單實例化該活動的新副本時,都會調用某個活動,但用戶看不到它?這會造成資源問題嗎?

或者當noHistory="false",後退按鈕只是再次調用類似startAcitvity(intent)的東西,還是經歷了每個實例化的新副本?

我很擔心資源問題,而不是放慢一個用戶的Android設備。

+0

您可以自己測試一下,看這個問題:http://stackoverflow.com/questions/4387875/view-activity-stack-in-android – Dalmas 2012-08-06 21:36:02

回答

31

docsnoHistory:「真」

值表示該活動不會留下歷史痕跡。它不會留在任務的活動堆棧中,所以用戶將無法返回到它。

關於你的問題:

沒有A,B,A,B,A,B的真實堆棧存在嗎?

的文檔就表示沒有。

我關心的資源問題,並沒有減緩用戶的Android設備。

你真的不需要擔心這個問題。當內存不足時,操作系統應該處理活動的清理。在您的活動中使用位圖或邏輯的可能性較低將導致性能下降。

相關問題