2016-11-18 42 views
-6

我正在构建相对简单的应用程序/游戏,其中包含任务和子任务。用户的进展应该被保存。用户也有少量的设置。存储应用程序数据的位置?

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

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

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

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

-Timo

+1

主要基于意见...你有没有检查官方Android指南中的“存储选项”主题? – Selvin

+0

'共享首选项'是您的不错选择。 – AJay

+0

谢谢AJay!我会尝试的。 –

回答

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); 

该代码需要像往常一样将参数的重点和第二个参数的默认值。

对于你的另一个提示是,如果你想用一个简单的UI在一个普通的应用程序中使用它,那么有一种叫做PreferenceScreen的东西。

+0

谢谢!我会放弃这一点。 –

1

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

+0

谢谢!这些是有用的tps。 –

相关问题