我正在构建相对简单的应用/游戏,其中包含任务和子任务。应保存用户的进度。用户也有少量设置。
现在应用程序无法连接到外部服务,但将来的目标是使用Facebook或类似的东西进行用户注册,并添加一项功能以与其他用户共享进度/成就。
我是应用开发的新手,我不知道选择哪种数据存储方法。如果我没有弄错键值集,请保存文件和数据库选项。
为了快速完成任务,甚至可以发布v.1.0,我想采用最简单的解决方案。所以,我想知道在文件选项中选择键值或保存是否存在缺点,以及切换到基于数据库的保存有多难?或者我应该从一开始就使用数据库吗?
我向你致敬,花时间回答这个问题!
-Timo
答案 0 :(得分:1)
最简单的方法是使用SharedPreferences。对于复杂的事物,您需要使用SQLite(内置)或某些ORM,如Realm或GreenDao。对于在线分数分享,您需要使用上述之一和服务器。 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();
您还可以添加其他类型的值,但需要调用putString
或putBoolean
或其他类型。
要读取值,请执行以下操作:
int a = prefs.getInt("KEY_TO_VALUE", 0);
此代码总是需要您的Key参数,第二个参数需要默认值。
另一个提示是,如果你想在一个简单的用户界面中使用它,那就有一个名为PreferenceScreen的东西。