У меня есть игровой объект, который я сохраняю таким образом в OnPause ()
try {
final ObjectOutputStream os = new ObjectOutputStream(openFileOutput(gameName + ".sav", 0));
os.writeObject(gameObject);
os.reset();
} catch (final Exception e) {
e.printStackTrace();
}
Это прекрасно работает, за исключением некоторых старых или более медленных телефонов, иногда это может занять слишком много времени. Я получаю ошибку ANR (активность не отвечает). Я хотел бы переместить это в поток, чтобы предотвратить блокирование пользовательского интерфейса. Однако, когда я пытаюсь это сделать, я сталкиваюсь с несколькими проблемами.
Первый openFileOutput доступен только в моей деятельности. Я обошел это, передав ObjectOutputStream потоку. После этого я смог сохранить объект, но позже, когда попытался перезагрузить компьютер, я получил java.io.EOFExeception.
У кого-нибудь есть хороший шаблон для записи объектов в файл из потока?