【发布时间】:2018-12-07 03:26:16
【问题描述】:
实际上,在我的应用程序中,我正在通过下载格式化它的 HTML 页面代码并从页面中检索一些特定数据来执行一些复杂的操作,之后我将所有不同的数据存储在字符串数组中。
将数据存储在数组中后,我将使用 Json 将其保存在 sharedPreferences 中,但我不确定这是否是最佳选择,是否有任何其他操作可以代替以使其保存和加载数据更快?
PS:我不会使用任何数据库作为 Room 或 SQlite。
这是我保存和加载数据的代码:
private void saveDataTasti(){
SharedPreferences sharedPreferences = getSharedPreferences("TASTI_SAVE", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(items);
editor.putString("tasti list", json);
editor.apply();
}
private void loadDataTasti() {
new ArrayList<Item>();
SharedPreferences sharedPreferences = getSharedPreferences("TASTI_SAVE", MODE_PRIVATE);
Gson gson = new Gson();
String json = sharedPreferences.getString("tasti list", null);
Type type = new TypeToken<ArrayList<Item>>() {
}.getType();
items = gson.fromJson(json, type);
}
【问题讨论】:
-
所以你的意思是你目前的解决方案很慢还是什么?如果你不想使用数据库,那么序列化并存储到
SharedPreference是你唯一的选择,但绝对不是最好的选择。总是推荐使用数据库来保存复杂的对象数组。
标签: android arrays json sharedpreferences