我的应用崩溃了,共享首选项中的所有数据都被清除了。我要保存一些标志并以共享首选项维护用户会话。标志之一是IsFirstLaunch,它告诉我应用程序是否是第一次启动,如果返回true,那么我正在从服务器下载一些数据并将其存储在SQLite数据库中。
请指导,在此先感谢。
因此,崩溃后,当加载首选项时,首选项xml文件中出现空白,导致首选项被重置。
为了避免这种情况,您可以将所有首选项修改放入同步块中,甚至可以使用一种同步静态方法进行所有首选项写入。
我认为-您需要一种更好的方法来管理和存储要保存的数据。
但是,下次访问共享首选项时,该xml文件将被清除并重新开始。
例如 :
private static final class SharedPreferencesImpl implements SharedPreferences {
...
public String getString(String key, String defValue) {
synchronized (this) {
String v = (String)mMap.get(key);
return v != null ? v : defValue;
}
}
...
public final class EditorImpl implements Editor {
public Editor putString(String key, String value) {
synchronized (this) {
mModified.put(key, value);
return this;
}
}
...
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句