在哪里存储应用数据?

时间:2016-11-18 12:23:43

标签: android android-studio saving-data

我正在构建相对简单的应用/游戏,其中包含任务和子任务。应保存用户的进度。用户也有少量设置。

现在应用程序无法连接到外部服务,但将来的目标是使用Facebook或类似的东西进行用户注册,并添加一项功能以与其他用户共享进度/成就。

我是应用开发的新手,我不知道选择哪种数据存储方法。如果我没有弄错键值集,请保存文件和数据库选项。

为了快速完成任务,甚至可以发布v.1.0,我想采用最简单的解决方案。所以,我想知道在文件选项中选择键值或保存是否存在缺点,以及切换到基于数据库的保存有多难?或者我应该从一开始就使用数据库吗?

我向你致敬,花时间回答这个问题!

-Timo

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用SharedPreferences。对于复杂的事物,您需要使用SQLite(内置)或某些ORM,如RealmGreenDao。对于在线分数分享,您需要使用上述之一和服务器。 Facebook允许您每个用户只存储一个整数,这有时是不够的,并且还需要存储该整数,您需要获得用户(publish_actions)的额外许可。希望这会有所帮助。

答案 1 :(得分:1)

我建议您使用SharedPreferences。这是Android简单类,它将数据存储在键值集中。

以下是代码:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

这会初始化您的SharedPreferences。如果要编写/更改值,请执行以下操作:

SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("KEY_TO_VALUE", 123);
editor.commit();

您还可以添加其他类型的值,但需要调用putStringputBoolean或其他类型。

要读取值,请执行以下操作:

int a = prefs.getInt("KEY_TO_VALUE", 0);

此代码总是需要您的Key参数,第二个参数需要默认值。

另一个提示是,如果你想在一个简单的用户界面中使用它,那就有一个名为PreferenceScreen的东西。