我刚开始编写我的第一个Android应用程序并对其内存管理有疑问。
在我的应用程序中,我只有一个主要活动,有两个成员变量 -
private ArrayList<String> textList
private int textSize;
应用程序继续将项添加到textList中,textSize跟踪项(我知道textList.size())
返回主屏幕而不关闭应用程序(按主页按钮)以保持手机长时间闲置导致
textList.size() = 0 and textSize = previous stored value.
我试图理解textList中遗失值的理性,而textSize保留其值。
答案 0 :(得分:1)
当应用程序不在前台时Android可能会关闭它...调用onDestroy()。 我想虽然因为一些状态被保存,但是Activity本身没有被重新分配,而是你可能正在重新初始化Activity生命周期函数中的textList,比如onResume()。
请参阅活动页面上的“活动生命周期”(来自developer.android.com)
Android也可能会发布并重新分配您的活动 - 因此,当您不在前台时,您不能依赖成员变量来保留您的状态。 如果要保存状态,请参阅Activity android文档中的“保存持久状态”和“onSaveInstanceState()”。