Android活动内存管理

时间:2013-10-10 21:39:49

标签: java android memory-management

我刚开始编写我的第一个Android应用程序并对其内存管理有疑问。

在我的应用程序中,我只有一个主要活动,有两个成员变量 -

private ArrayList<String> textList
private int textSize;

应用程序继续将项添加到textList中,textSize跟踪项(我知道textList.size())

返回主屏幕而不关闭应用程序(按主页按钮)以保持手机长时间闲置导致

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

我试图理解textList中遗失值的理性,而textSize保留其值。

1 个答案:

答案 0 :(得分:1)

当应用程序不在前台时Android可能会关闭它...调用onDestroy()。 我想虽然因为一些状态被保存,但是Activity本身没有被重新分配,而是你可能正在重新初始化Activity生命周期函数中的textList,比如onResume()。

请参阅活动页面上的“活动生命周期”(来自developer.android.com)

Android也可能会发布并重新分配您的活动 - 因此,当您不在前台时,您不能依赖成员变量来保留您的状态。 如果要保存状态,请参阅Activity android文档中的“保存持久状态”和“onSaveInstanceState()”。