1. 程式人生 > >android關於Gc回收棧內的activity的順序

android關於Gc回收棧內的activity的順序

如圖,當記憶體不足時,Gc回收棧內的activity的順序是怎麼樣的呢。

1.一開始我的想法是:棧應該符合先進後出的原則,應該是先回收twoActivity,最後回收homeActivity。

2.後來想想又不對,因為棧頂的activity一般都是直接與客戶互動的介面,記憶體不足時如果先回收棧頂的話,好像不太合理。

3.於是,我就開始測試了,經過幾次測試,果然,當記憶體不足時,Gc回收棧內的activity是先回收棧底的,換句話說就是遠離棧頂的activity先被回收。

當時研究這個是因為有一個需求:APP退出時(不管是Gc回收,還是被殺死),退出時一定會走的方法。

但是經過測試,貌似並沒有這樣的方法,比如說Application中terminate方法什麼的都不是必然執行的。所以想著在棧底的Acitivity做些文章,但是按照上面測試

出來的結果的話,並不能做到,所以有大神知道的話,請指教。