我的程序是由两个活动,A和B。我在考虑这一系列步骤:

  • 活动的一个开始。
  • 一个发射B[一是停顿了一下,B运行].
  • B启动了一个地图的意图[A和B都暂停,现在].

现在的用户是使用了地图应用程序和系统决定它需要更多的存储器。可以系统杀掉 只有一个 我活动的记忆,或者将它总是杀死 所有 活动在一个"过程"在这种情况?

这两个活动中分享一些静态数据,如:

class Data {
    public static String mName;
    public void save() {
      // write to file: mName;
    }
    public void load() {
      // mName = read from file;
    }
}

ActivityA.mTextView.setText(Data.mName);
ActivityB.mListView.addText(Data.mName);

因此,当任何活动的在我的程序得到onSaveInstanceBundleSate()称,我呼数据。save()写到磁盘。现在的问题是,在一个活动的onCreate()方法,应该我只是检查看看数据。mName==null,如果是,假定该活动是返回自杀的状态,并尝试恢复从磁盘了吗?我不清楚时,这种恢复应该做的,考虑到活动的一个可能或不可能还活着等等。-我不想要损坏状态,如果活动的一个仍然是活着,但B是回来杀的状态,

感谢

感谢

有帮助吗?

解决方案

可能最好的解决办法是移动你的静态数据服务。这样可以将数据保存和恢复当机关闭的服务,而不是当机关闭任何一个活动使用的数据。

没有使用服务(或者交替地内容提供者,或者甚至是压倒一切的应用程序,虽然这似乎是令人难以接受的),则必须管理自己的生命周期,正如你已经看到可能是棘手的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top