【问题标题】:Android activity memory managementAndroid活动内存管理
【发布时间】:2013-10-10 21:39:49
【问题描述】:

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

在我的应用中,我只有一个 Main Activity,有两个成员变量 -

private ArrayList<String> textList
private int textSize;

应用程序不断将项目添加到 textList 和 textSize 跟踪项目(我知道 textList.size())

在不关闭应用程序的情况下(按主页按钮)返回主屏幕以使手机长时间处于空闲状态会导致

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

我试图了解 textList 和 textSize 中丢失值保持其值的原因。

【问题讨论】:

  • 可能是再次调用了初始化代码。

标签: java android memory-management


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2012-12-17
    • 2016-02-20
    • 2012-01-18
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多