Android:使用Object存储游戏变量

时间:2017-04-19 14:00:44

标签: java android android-intent parcelable

我正在开发一个由MainActivity和GameActivity组成的简单Android游戏。在MainActivity中,用户可以选择一些选项,然后使用这些选项/变量(即游戏模式,游戏难度等)开始游戏。

Intent gameIntent = new Intent(this, GameActivity.class);
gameIntent.putExtra("gameMode", 3);
startActivity(gameIntent);

因为我要存储相当多的变量(准确地说是26),而且由于Java是面向对象的,所以我考虑使用自己的Game类来存储和检索所有变量,如下所示:

public class Game implements Parcelable {

    private int gameMode;
    private int gameDifficulty;

    // Constructor
    public Game(int gameMode, int gameDifficulty) {
        this.gameMode = gameMode;
        this.gameDifficulty = gameDifficulty;
    }

    // getters and setters here

}

并将其作为Parcelable放入我的意图中:

Game myGame = new Game(gameMode, gameDifficulty);
Intent gameIntent = new Intent(this, GameActivity.class);
gameIntent.putExtra("game", myGame);
startActivity(gameIntent);

我的问题是:使用Object来存储和传递游戏变量是否方便还是超过顶部?什么是最好的方法?我错过了什么吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

当然,对象中的保存设置是很好的方法。如果您有多个依赖于该对象的活动,则应考虑使用单例缓存它,并将其保存到内部存储。 如果你有一个依赖于设置的活动(比如我猜你的情况),可以使用实现Parcelable的类并通过Intent将该类的实例传递给GameActivity。