我正在开发一个应用程序,帮助人们保存有关其工作日的信息。
用户输入每个工作日的开始日期和结束日期,应用程序计算他本月工作的工资和工时。
我没有在DataBase
中保存此信息,而是将信息保存在Shared-Preferences
中。例如,我以这种方式保存他的工资(工资是EditText
):
SharedPreferences.Editor editor;
editor = sharedPreferences3.edit();
editor.putString("Wage", wage.getText().toString());
editor.commit();
我很确定在Shared-Preferences
中保存像工资一样的数字真的很棒。但是为了保存每个工作日的输入和退出日期,我应该使用DataBase
。但是我使用了Shared-Preferences
。
工作日由@
分隔,例如,一串工作日就像 -
09/27/2015 13:02 - 09/27/2015 20:02 @ 10/27/2015 10:15 - 10/27/2015 16:15.
使用char @
,我可以提取信息并随心所欲地做任何事情。
我想问的是 - 使用Shared-Preferences
代替DataBase
,还好吗?
答案 0 :(得分:0)
如果您需要存储不同的偏好和偏好的数据,我的意思是固定数量的不同值可以改变其价值,但不会增长超过预期。
您正在以不符合预期的方式使用偏好设置。我不能告诉你这样做的缺点或者你会因此而遇到什么问题。
我建议您使用内部SQLite,或者......您可以使用简单的本地文件并序列化包含要保存的数据的类。
两种选择都比使用偏好更好。
希望这有帮助。
答案 1 :(得分:0)
这实际上取决于您要存储的数据。
**SharedPreferences**
大量相同的结构化数据应该存储在SQLite数据库中,因为数据库是为这种数据设计的。由于数据是由数据库构建和管理的,因此可以查询使用SQL等查询语言获取与某些条件匹配的数据子集。这使得可以搜索数据。当然,管理和搜索大量数据会影响性能,因此从数据库读取数据可能比从SharedPreferences读取数据要慢。
Intent myIntent = new Intent(WearRunActivity.this, ResultsActivity.class);
myIntent.putExtra("distance", distance);
myIntent.putExtra("time", chronometer.getText());
myIntent.putExtra("pace", pace);
myIntent.putExtra("speed", speedAc);
myIntent.putExtra("lSteps", leftSteps);
myIntent.putExtra("rSteps", rightSteps);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, myIntent, PendingIntent.FLAG_CANCEL_CURRENT);
//WearRunActivity.this.startActivityIfNeeded(myIntent, 1);
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.card_icon)
.setContentTitle("REPORT")
.setContentText(chronometer.getText())
.setLargeIcon(BitmapFactory.decodeResource(
getResources(), R.drawable.card_icon))
.setAutoCancel(true)
.setContentIntent(pendingIntent);
notification_manager = NotificationManagerCompat.from(this);
notification_manager.notify(1, notificationBuilder.build());
SharedPreferences是一个键/值存储,您可以在其中保存特定键下的数据。要从商店读取数据,您必须知道数据的密钥。这使得读取数据非常容易。但是,尽管存储和读取大量结构化数据很困难,因为您需要为每个数据定义关键字,但是除了您有一定的概念之外,您无法真正搜索数据。命名键。
答案 2 :(得分:0)
长话短说:
1-如果数据很大,您可以将用户输入/数据存储到本地数据库中。
2-如果您的数据相对较小,您可以使用共享首选项来存储数据。