如何在 Android 应用程序中保存数据

2024-04-19

我最近编写了一个 Android 应用程序。这只是一个简单的应用程序,可让您通过几个简单的计数间隔来记录篮球比赛的得分。我收到添加保存功能的要求,这样您就可以保存您的分数,然后将其加载回来。目前,当您停止应用程序时,您的数据就会丢失。所以我想知道的是我必须添加什么才能让应用程序保存标签(分数)然后将其加载回来。谢谢各位,抱歉我对这个东西了解不多。


你有两个选择,我将让你选择。

  1. 共享偏好设置

    这是 Android 独有的框架,允许您存储原始值(例如int, boolean, and String,虽然严格来说String不是键值框架中的原语)。这意味着您为一个值指定一个名称,例如“homeScore”,并将该值存储到该键中。

    SharedPreferences settings = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putInt("homeScore", YOUR_HOME_SCORE);
    
    // Apply the edits!
    editor.apply();
    
    // Get from the SharedPreferences
    SharedPreferences settings = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
    int homeScore = settings.getInt("homeScore", 0);
    
  2. 内部存储器

    在我看来,这就是您可能正在寻找的。您可以将任何想要的内容存储到文件中,因此这为您提供了更大的灵活性。然而,这个过程可能会比较棘手,因为所有内容都将存储为字节,这意味着您必须小心保持读写过程协同工作。

    int homeScore;
    byte[] homeScoreBytes;
    
    homeScoreBytes[0] = (byte) homeScore;
    homeScoreBytes[1] = (byte) (homeScore >> 8);  //you can probably skip these two 
    homeScoreBytes[2] = (byte) (homeScore >> 16); //lines, because I've never seen a                   
                                                  //basketball score above 128, it's
                                                  //such a rare occurance.
    
    FileOutputStream outputStream = getApplicationContext().openFileOutput(FILENAME, Context.MODE_PRIVATE);
    outputStream.write(homeScoreBytes);
    outputStream.close();
    

现在,您还可以查看外置储存 http://developer.android.com/guide/topics/data/data-storage.html#filesExternal,但我不建议在这种特殊情况下这样做,因为外部存储稍后可能不存在。 (注意,如果选择此项,则需要许可)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 应用程序中保存数据 的相关文章

随机推荐