2013-10-10 116 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()”。