我的第一个问题是;即使在游戏关闭并重新启动后,我是否可以使用相同的allready序列化对象来恢复我的游戏?换句话说,保存状态是否会在结束时丢失()? MainActivity有三个类,SplashScreen(菜单),Board(对象)
第二个问题:如何使用按钮从菜单中获取最后一个状态?
在我的MainActivity.java中,我得到了这个:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("board", board);
outState.putSerializable("moveCounter", moveCounter);
}
// When onCreate is called, bring back saved state if any
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
Board oldState = (Board) savedInstanceState
.getSerializable("board");
int oldMoveCounter = savedInstanceState.getInt("moveCounter");
if (oldState != null) {
board = oldState;
moveCounter = oldMoveCounter;
}
}
在我的对象类Board.java中我得到了这个:
public class Board implements Serializable {
private static final long serialVersionUID = 4416703215631262818L;
...
... }
答案 0 :(得分:0)
首先,在性能方面,最好使用Parcelable
代替Serializable
,因此请尝试制作实体Parcelable
。这里是文档的link,它还提供了一个创建类Parcelable
的简单示例。
其次,Android中有几个持久性选项,您应该选择最适合您用例的选项。这里有一个good document来描述它们。