Я работаю над видеоприложением, которое использует ArrayDeque для хранения нашей истории просмотренных видео с помощью push, pop. Это хорошо работает, но я искал чистый способ сохранения и восстановления ArrayDequeСохранение и восстановление ArrayDeque onSaveInstanceState
private Deque<ProgramModel> mVideoHistory = new ArrayDeque<>();
Я сохранить список, сохранив его как ArrayList.
@Override
public void onSaveInstanceState(final Bundle outState) {
// save history
ArrayList<ProgramModel> history = new ArrayList<>();
for (ProgramModel program : mVideoHistory) {
history.add(program);
}
outState.putParcelableArrayList("videoHistory", history);
}
Тогда я восстановить его
if (savedInstanceState != null) {
// restore history
ArrayList<ProgramModel> history =
savedInstanceState.getParcelableArrayList("videoHistory");
mVideoHistory = new ArrayDeque<>(history);
}
Это может быть сделано более эффективным/очиститель способом, чем это?
Ive попробовал outState.putSerializable("videoHistory", mVideoHistory.toArray());
, но восстановление вызвало у меня проблемы.
спасибо за быстрый ответ, кажется, мой ProgramModel обыкновение играть хороший этот путь, он дает мне 'Parcelable встречается IOException писать сериализуемая объект' – Eoin
ProgramModel реализует Serializable? Если это так, проверьте, что все атрибуты типов, которые члены ProgramModel реализуют Serializable. – Pablo