How to keep a permanent custom item?

I want to save a custom object (let's call it MyObject) permanently, so if it is deleted from memory, I can load it in my activity / fragment onResume () method when the application starts again.

How can i do this? SharedPreferences does not seem to have a method for storing valid objects.

+6
source share
2 answers

If you need to save it in SharedPreferences, you can parse your object into a json string and save the string.

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 { } 
+22
source

You can write a Bundle as a package to disk, then get Parcel later and use the Parcel.readBundle() method to return your Bundle .

+2
source

All Articles