A. 如何判斷 android被 系統回收
我覺得沒有顯式的判斷方法。
Activity就像Java中的一個類,類可以實例化出很多個對象,但你無法判斷該類所有的對象是否已經被內存回收了。
android中顯式的調用finish()方法,或者隱身的(比如按「Back」鍵導致該activity被finish()掉),會導致該activity被回收。
B. 有關android回收對象的問題
你的t1和t2class對象雖然定義在Oncreate()函數外面,但是卻是在函數裡面實例化的。當你的程序初始化Activity之後(即調用完Oncreate()函數之後)便會釋放大括弧裡面所有變數所佔用的內存空間,而finalize()相當如充當回收函數第一個被調用,不過回收過程並不是我們理解的一經調用立馬回收,而是系統等到回收的資源達到一定的數目時才統一回收。(以上僅屬個人理解建議用debug單步調試看看)
C. android進程被系統回收(殺死)
Activity綁定Service,那麼這個service的生命周期跟activity相關。會隨著activity結束而結束。
綁定的service跟activity是同一個進程的。
如果service配置一個單獨的進程,應該是通過startService來啟動的,bindService不行吧?
系統資源不足時,會有一個策略來回收進程,優先順序的回收順序是 Empty process、Background process、Service process、Visible process、Foreground process。
參見www.cnblogs.com/bastard/archive/2012/08/17/2644169.html