题
我的程序是由两个活动,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是回来杀的状态,
感谢
感谢
解决方案
可能最好的解决办法是移动你的静态数据服务。这样可以将数据保存和恢复当机关闭的服务,而不是当机关闭任何一个活动使用的数据。
没有使用服务(或者交替地内容提供者,或者甚至是压倒一切的应用程序,虽然这似乎是令人难以接受的),则必须管理自己的生命周期,正如你已经看到可能是棘手的。
不隶属于 StackOverflow