我的应用程序崩溃了,并且所有数据都在共享首选项被清除。 我正在保存一些标志并保持共享首选项中的用户会话。 其中一个标志是IsFirstLaunch,它告诉我应用程序是否第一次启动,如果返回true,那么我从服务器下载一些数据并存储在SQLite数据库。共享首选项重置应用程序崩溃时的数据。请指导
请指导,在此先感谢。
我的应用程序崩溃了,并且所有数据都在共享首选项被清除。 我正在保存一些标志并保持共享首选项中的用户会话。 其中一个标志是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;
}
}
...
}
}
请出示您的代码,其中的应用程序崩溃和错误日志了。 – DkThakur
http://stackoverflow.com/questions/15353900/shared-preferences-reset-data-when-app-is-force-closed-or-device-is-restarted –
可能重复共享日志猫的信息或代码来查找坠机原因。 –