Android Gson字符串中是否有要在SharedReferences中存档的最大长度?
在我的Android应用程序中,我在SharedReferences中将大量数据归档为json,json项构建如下Android Gson字符串中是否有要在SharedReferences中存档的最大长度?,android,json,sharedpreferences,Android,Json,Sharedpreferences,在我的Android应用程序中,我在SharedReferences中将大量数据归档为json,json项构建如下{“codiceArticolo”:“0401100028053”,“data”:“mer 03/07/2019”,“qta”:“1”}json中可能有500多个类似的项 实际上,json是通过以下方法从ArrayList生成的 public void saveStorico(){ ArrayList<ItemModel> itemToRemove = new
{“codiceArticolo”:“0401100028053”,“data”:“mer 03/07/2019”,“qta”:“1”}
json中可能有500多个类似的项
实际上,json是通过以下方法从ArrayList生成的
public void saveStorico(){
ArrayList<ItemModel> itemToRemove = new ArrayList<>();
ArrayList<ItemModel> itemToAdd = new ArrayList<>();
// various controlls
for(ItemModel itemModels : itemModel){
boolean exist = false;
for(ItemModel itemModel2 : itemStorico){
if(itemModels.getCodiceArticolo().contains(itemModel2.getCodiceArticolo())) {
itemToRemove.add(itemModel2);
itemToAdd.add(itemModels);
exist = true;
}
}
if(!exist) {
itemToAdd.add(itemModels);
}
}
itemStorico.removeAll(itemToRemove);
itemStorico.addAll(itemToAdd);
SharedPreferences sharedPreferences = getSharedPreferences("STORICO_ORDINI", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(itemStorico);
editor.putString("storico", json);
editor.apply();
}
public void saveStorico(){
ArrayList itemToRemove=新建ArrayList();
ArrayList itemToAdd=新的ArrayList();
//各种控制
对于(ItemModel itemModels:ItemModel){
布尔存在=假;
对于(ItemModel itemModel2:itemStorico){
if(itemModels.getCodiceArticolo().contains(itemModel2.getCodiceArticolo())){
itemToRemove.add(itemModel2);
itemToAdd.add(itemModels);
存在=真实;
}
}
如果(!存在){
itemToAdd.add(itemModels);
}
}
itemStorico.removeAll(itemToRemove);
itemStorico.addAll(itemToAdd);
SharedPreferences SharedPreferences=getSharedPreferences(“STORICO_ORDINI”,MODE_PRIVATE);
SharedReferences.Editor=SharedReferences.edit();
Gson Gson=新的Gson();
字符串json=gson.toJson(itemStorico);
putString(“storico”,json);
editor.apply();
}
但是我在获取数据时遇到了一些问题,有些保存的项目似乎没有保存,我可以在SharedReferences内部保存为json的最大长度限制吗?如果您想要保存的键值集合相对较小,那么应该使用SharedReferences API
对于像您这样的大量数据,SharedReference不是一个好的选择。
您更应该使用SQL数据库或NoSQL数据库
正如我以前看到的,如果共享的偏好超过100KB,你需要考虑其他选择。如果超过1MB,可能会出现内存不足异常。事实上,我知道我应该只存储一小部分键值,但我没有时间制作应用程序,我必须实现一个最快的解决方案来存储数据,无论如何,存储在共享prefs中的500个项占用的空间不超过64kb。。。