当前位置: 首页 > 知识库问答 >
问题:

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

丁毅庵
2023-03-14

我最近编写了一个Android应用程序。这只是一个简单的应用程序,让你保持几个简单的计数器间隔的篮球比赛得分。我得到了增加一个保存功能的需求,这样你就可以保存你的分数,然后加载他们回来。目前,当您停止应用程序时,您的数据将丢失。所以我想知道的是我必须添加什么才能让应用程序保存标签(分数),然后加载它。谢谢,伙计们,对不起,我对这些东西不太了解。

共有1个答案

班泽语
2023-03-14

你有两个选择,我把选择留给你。

>

  • 共享首选项

    这是Android独有的框架,允许您在键值框架中存储基本值(例如intboolean、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);
    
    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();
    

    现在,您还可以查看外部存储,但我不建议在这种特殊情况下这样做,因为外部存储可能以后就不在那里了。(请注意,如果选择此选项,则需要权限)

  •  类似资料:
    • 问题内容: 我目前正在使用Swift开发的iOS应用程序,需要在设备上存储一些用户创建的内容,但似乎找不到一种简单快捷的方法来在设备上存储/接收用户内容。 有人可以解释如何存储和访问本地存储吗? 想法是在用户执行操作时存储数据,并在应用程序启动时接收数据。 问题答案: 如果仅存储两个字符串,最简单的解决方案是,在Swift 3中,该类已重命名为just 。 最好将密钥存储在全局位置,以便您可以在代

    • 问题内容: 我有一个带有简单复选框的应用程序,当用户按下该复选框时,会在build.prop中添加一行,这是可行的,但是当我退出该应用程序时,该复选框已重置,有没有一种方法可以通过在其中添加示例代码来防止这种情况您的帖子,因为我仍然是Android应用程序的新手。 MainActivity.java activity_main.xml 问题答案: 使用getRuntime()。exec()在哪里得

    • 让我们看看同步方法MyClientFacade.getUser(): 如果使用或混合使用,则获得相同的行为: 假设我的用户在缓存中的得分值是5,而Firebase DB的得分值是11。 如果取消示例中代码的注释,Firebase缓存将有足够的时间更新,并且我的将返回正确的得分值(11)。 那么如何直接从服务器端直接询问最新的值并绕过缓存呢?

    • 我们目前正在实施一个简单的聊天应用程序,允许用户创建对话和交换消息。 我们的基本设置涉及前端的AngularJS和后端的SignalR集线器。它的工作原理是这样的: 客户端应用程序打开与我们的实时服务(基于SignalR)的WebSocket连接并订阅聊天更新 用户开始发送消息。对于每条新消息,客户端应用程序都会调用HTTP API发送它 API将消息存储在数据库中,并通知我们的实时服务有新消息