<分区>
我想永久存储一个自定义对象(我们称它为 MyObject),这样如果它从内存中删除,我可以在我的 Activity
/Fragment
中重新加载它 onResume()
应用程序再次启动时的方法。
我该怎么做? SharedPreferences
似乎没有存储 parcelable 对象的方法。
<分区>
我想永久存储一个自定义对象(我们称它为 MyObject),这样如果它从内存中删除,我可以在我的 Activity
/Fragment
中重新加载它 onResume()
应用程序再次启动时的方法。
我该怎么做? SharedPreferences
似乎没有存储 parcelable 对象的方法。
最佳答案
如果您需要将其存储在SharedPreferences中,您可以将您的对象解析为json字符串并存储该字符串。
private Context context;
private MyObject savedObject;
private static final String PREF_MY_OBJECT = "pref_my_object";
private SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
private Gson gson = new GsonBuilder().create();
public MyObject getMyObject() {
if (savedObject == null) {
String savedValue = prefs.getString(PREF_MY_OBJECT, "");
if (savedValue.equals("")) {
savedObject = null;
} else {
savedObject = gson.fromJson(savedValue, MyObject.class);
}
}
return savedObject;
}
public void setMyObject(MyObject obj) {
if (obj == null) {
prefs.edit().putString(PREF_MY_OBJECT, "").commit();
} else {
prefs.edit().putString(PREF_MY_OBJECT, gson.toJson(obj)).commit();
}
savedObject = obj;
}
class MyObject {
}
关于android - 如何永久存储可打包的自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839400/