2012-06-01 178 views
0

我對理解android和聽說活動堆棧還是比較新的。Android中的活動堆棧

從我閱讀和理解的內容來看,它會在您進展到每個活動並將其作爲堆棧項目放在後面時創建堆棧。

我的問題是:

  • 會刪除的活動堆棧事業的Android節省更多的內存?例如。如具有大量圖像的活動。

  • 知道您希望他們從頭開始的時候移除活動堆棧會更好嗎?

如果在第二句話中有什麼需要糾正的話,請一併提及。

回答

2

如果您知道您希望他們從頭開始,那麼移除活動堆棧會更好嗎?

活動堆棧 背面疊層是重要的,因爲它允許後退導航從屏幕到屏幕的手段。沒有它,就不會有「後退按鈕」導航,並且「任務」的概念將不存在。 Android已經過優化,可以爲您管理內存(請參閱Activity生命週期的文檔)。放置在後端堆棧上的活動仍由系統管理;只要你不做任何愚蠢的事情,就不會有任何問題。 :)

知道您希望他們從頭開始的時候移除活動堆棧會更好嗎?

我不知道我是否正確理解這個問題,但答案很可能是「不」。如果您想從頭開始(即清除後退堆棧),那麼啓動新的活動時可以使用FLAG_ACTIVITY_CLEAR_TOP標誌。

+0

另一個問題,如果你不介意。調用finish()返回到上一個活動,從而告訴活動類完成並垃圾收集。這是否意味着堆棧中的活動消失? – Juju

+0

是的。當你調用finish()時,頂層活動從堆棧中彈出並被銷燬。當調用onDestroy()時,所有活動的內存資源都會被釋放,並最終被系統垃圾回收。這是默認情況下「後退」按鈕的作用(請注意,有些應用程序會覆蓋後退按鈕,因此情況可能並非總是如此)。 –