我有一个 Android 应用程序,它每 5 秒加载一次远程 JSON 提要。JSON 文件的有效负载约为 240kb。我还想缓存这些数据,以便用户在离线时可以查看最后加载的提要。
每次获取提要时将原始数据写入内部存储是否可取?
我有一个 Android 应用程序,它每 5 秒加载一次远程 JSON 提要。JSON 文件的有效负载约为 240kb。我还想缓存这些数据,以便用户在离线时可以查看最后加载的提要。
每次获取提要时将原始数据写入内部存储是否可取?
我不会。我会对其进行内存缓存,并在 onPause() 中将最后一个版本写入文件系统。这样你就不会经常写入磁盘。
我同意加布的观点。将数据保存在onPause()
方法中。您永远无法确定系统或用户何时会终止您的应用程序,因此将onPause()
方法应用于应用程序中的每个活动,然后调用将执行保存到应用程序缓存目录的类或静态方法。
祝你好运。
为什么不使用 SharedPreferences?
SharedPreferences sharedPref = getSharedPreferences("Test", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("jsondata", jobj.toString());
...
String strJson = sharedPref.getString("jsondata");
if(strJson != null) JSONObject jsonData = new JSONObject(strJson);