2013-10-10 99 views
1

我剛開始編寫我的第一個android應用程序,並對其內存管理有疑問。Android活動內存管理

在我的應用我只有一個主要活動,有兩個成員變量 -

private ArrayList<String> textList 
private int textSize; 

應用不斷增加的物品放入文本清單和TEXTSIZE跟蹤項目的(我知道textList.size())

再回到主屏幕而不關閉應用程序(按home鍵),以保持手機閒置長時間有結果

textList.size() = 0 and textSize = previous stored value. 

我想理解在textList和textSize中保留其值的理由背後的理性。

+1

可能是再次調用初始化代碼。 –

回答

1

當應用程序不在前臺時,Android可能會關閉它...調用onDestroy()。 我猜想,由於某些狀態正在被保存,所以Activity本身並未被重新分配,相反,您可能會重新初始化Activity生命週期函數中的textList,如onResume()。

見「活動的生命週期」的活動頁面上(從developer.android.com)

的Android可能也釋放,有時你重新分配活動 - 所以你不能依靠成員變量來保存你的狀態,當你不在前臺。 如果您想保存狀態,請參閱Activity android文檔中的「保存持久狀態」和「onSaveInstanceState()」。