SharedPreferences,Singleton类 - 您应该使用什么来调用,编辑,保存和调用两个整数值

时间:2015-07-24 08:01:48

标签: java android singleton sharedpreferences

我的应用程序将在整个时间内携带两个分数,调用它们,添加它们,保存它们,然后再次调用它们以进行其他功能和编辑。这方面最好的方法是什么?这些将是整个应用程序中唯一需要的数字。

我正在寻找的是我应该实施的最有效的选择。如果可能的话,这是一个制作,编辑,保存和回忆的简单例子。谢谢。

2 个答案:

答案 0 :(得分:0)

已更新您可以使用 SharedPreferences 保存分数当您首先调用getFirstScore()时,它将返回0,因为尚未创建变量,然后您可以调用setFirstScore()保存它。

public class ScoreDatabase{
    private Context context;
    private SharedPreferences pref;
    private SharedPreferences.Editor editor;

public ScoreDatabase(Context context){
   this.context=context;
   pref = context.getSharedPreferences("MY_PREFS", Context.MODE_PRIVATE);
   editor = pref.edit();

}

public int getFirstScore() {
    return pref.getInt("FIRST_SCORE", 0);
}

public int getSecondScore() {
    return pref.getInt("SECOND_SCORE", 0);
}

public void setFirstScore(int score) {
    editor.putInt("FIRST_SCORE", score);
    editor.commit();
}

public void setSecondScore(int score) {
    editor.putInt("SECOND_SCORE", score);
    editor.commit();
}

}

现在创建这个类的实例并在任何你想要的地方使用只需在构造函数中传递getApplicationContext()

//In your MainActivity class
ScoreDatabase scoreDatabase=new ScoreDatabase(getApplicationContext());
//call set function when you want to set score
scoreDatabase.setFirstScore(10);
scoreDatabase.setSecondScore(20);
//Call get function when you want to get score
int firstScore=scoreDatabase.getFirstScore();
int secondScore=scoreDatabase.getSecondScore();

答案 1 :(得分:0)

我建议使用 SharePreferences ,因为您只需要存储非常小的数据。

提示:

LIB_WORLD

这里需要注意的是:

  1. 您必须同步方法,因为多个线程可以访问游戏分数。

  2. 请注意,sharedPreference访问控制(MODE_PRIVATE | MODE_MUTI_PROCESS)告诉操作系统其他应用无法访问此sharedPreference,但同时可以从应用的多个进程访问它(如果您甚至可以在保存之前加密分数。)