我正在开发一个视频应用程序,它使用ArrayDeque来存储我们观看的视频的历史,使用push,pop。它运行良好,但我正在寻找一种保存和恢复ArrayDeque的干净方法
private Deque<ProgramModel> mVideoHistory = new ArrayDeque<>();我将列表保存为数组列表。
@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());,但修复给我带来了麻烦。
发布于 2016-02-08 07:59:20
你可以这样做:
outState.putSerializable("videoHistory", (ArrayDeque<ProgramModel>) mVideoHistory);恢复时再铸一次。
希望它能帮上忙
https://stackoverflow.com/questions/35264682
复制相似问题