我最近写了一个小应用程序来跟踪我的训练,并且应用程序由于某种原因而崩溃。当我再次打开它时,我的所有数据(已存储在共享首选项中)都丢失了。它已经工作了大约一个月,只是刚才有这个问题。
那么在什么情况下共享偏好会被删除?是否有更好的方法可以轻松保存数据,以便将来可以避免这种情况?
答案 0 :(得分:3)
如果在更改共享首选项方法的值后使用commit(),它将快速保存,但如果使用apply()方法无法确定保存,因为apply是异步的,可能无法保存数据。
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Name, n);
editor.putString(Phone, ph);
editor.putString(Email, e);
editor.commit();
其他重要的一点是,在保存数据或保存数据之前或保存数据之后应用程序崩溃的时间。
通过删除设置中的应用程序或清除数据按钮,可以轻松删除共享首选项。