Предотвратить изменение оригинальных файлов из контейнера песочницы приложения OS X с помощью перетаскивания или Share Extensions?

Я пробовал эти 2 варианта (чтение / запись), с обычными объектами, массивом объектов (150 объектов), Map:

Option1:

FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(this);
os.close();

Option2 :

SharedPreferences mPrefs=app.getSharedPreferences(app.getApplicationInfo().name, Context.MODE_PRIVATE);
SharedPreferences.Editor ed=mPrefs.edit();
Gson gson = new Gson(); 
ed.putString("myObjectKey", gson.toJson(objectToSave));
ed.commit();

Вариант 2 в два раза быстрее, чем вариант 1

Неудобство в опции 2 заключается в том, что вам нужно сделать специальный код для чтения:

Gson gson = new Gson();
JsonParser parser=new JsonParser();
//object arr example
JsonArray arr=parser.parse(mPrefs.getString("myArrKey", null)).getAsJsonArray();
events=new Event[arr.size()];
int i=0;
for (JsonElement jsonElement : arr)
    events[i++]=gson.fromJson(jsonElement, Event.class);
//Object example
pagination=gson.fromJson(parser.parse(jsonPagination).getAsJsonObject(), Pagination.class);
21
задан MartinW 14 July 2015 в 12:58
поделиться