ArrayDeque を使用して、プッシュ、ポップを使用して、表示されたビデオの履歴を保存するビデオ アプリに取り組んでいます。それはうまくいきますが、ArrayDequeを保存して復元するきれいな方法を探しています
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);
}
これよりも効率的/クリーンな方法で行うことはできますか?
試してみoutState.putSerializable("videoHistory", mVideoHistory.toArray());
ましたが、復元すると問題が発生しました。