【发布时间】:2015-03-05 19:59:26
【问题描述】:
我已经定义了一个在多进程模式下使用的SharedPreferences 实例。
public class Prefs {
private static SharedPreferences prefs;
private static SharedPreferences.Editor editor;
private static void init(Context context) {
prefs = context.getSharedPreferences("alaki",
Context.MODE_MULTI_PROCESS);
editor = prefs.edit();
}
// static methods to set and get preferences
}
现在我在一个具有单独进程的服务上使用这个类,也在我的主应用程序进程中以静态方式使用这个类。
一切进展顺利,但有时已删除 SharedPreferences 实例上的所有存储数据!
我该如何解决这个问题?
编辑: 最后我通过 IPC 解决了我的问题。
【问题讨论】:
-
修改后是否调用 editor.commit?
-
嗯。当您说所有数据都已删除时,您是什么意思?一个进程是否在修改首选项,而另一个进程没有看到更改?
-
@jmm 不,两个进程都可以查看和修改,但我的数据不安全!例如,半小时后删除所有数据!
标签: android service multiprocessing sharedpreferences ipc