缓存json的最佳方法

fis*_*h40 15 android json android-preferences android-sqlite

我的应用程序不仅可以在线工作,还可以在离线模式下工作.出于这个原因,我正在考虑找到兑现数据的最佳方式.我不喜欢将SharedPreference用于商店数据,但是在android文档中写入允许首选项值的最大字符数是8192.我不知道这是否可以?我试图通过尝试使用FileCashing或sqLite兑现这个想法.

那么你认为什么是最好的SharedPreference vs FileCashing或vs SqLiteCaching?

fid*_*989 19

将json保存在缓存目录中作为文件....

保存:

// Instantiate a JSON object from the request response
JSONObject jsonObject = new JSONObject(json);
// Save the JSONOvject
ObjectOutput out = new ObjectOutputStream(new FileOutputStream(new File(getCacheDir(),"")+"cacheFile.srl"));
out.writeObject( jsonObject );
out.close();
Run Code Online (Sandbox Code Playgroud)

检索:

// Load in an object
ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File(new File(getCacheDir(),"")+"cacheFile.srl")));
JSONObject jsonObject = (JSONObject) in.readObject();
in.close();
Run Code Online (Sandbox Code Playgroud)

  • @Cristiana214同样的方法,但删除jsonobject瞬时,只需将字符串写入缓存.并且在检索时只检索String而不是JsonObject. (4认同)

met*_*ter 13

我个人喜欢这样做.创建一个可以保存内容的SQLite数据库.然后,使用适配器和内容提供程序将用户界面直接绑定到数据库,每当数据发生更改时发送通知,以便UI可以自行更新.等式中的最后一部分是某种形式的同步服务,它可以下载内容并将其异步保存到数据库中.这样,您可以非常轻松地管理数据,因为它们都在同一个地方.您需要为应用程序确定的唯一部分是您如何决定何时更新或从数据库中删除数据.

适配器

内容提供商

同步