我想在我的设备中存储 json 值。因为每次应用程序都需要时间来加载 json 值。而不是多次加载,只想加载整个 json 值一次。如果没有互联网,我可以使用它。连接互联网后,应用程序会自动加载 json 值。我怎样才能做到这一点 ?
问问题
60 次
2 回答
0
您可以为此使用数据库。
这样你也可以存储它。
Arraylist<ClassName> jsondata=new ArrayList<ClassName>
这是一个例子:
public Class ClassName
{
string fname;
string lname;
public void setfname(String fname)
{
this.fname=fname;
}
public void setlname(String lname)
{
this.lname=lname;
}
public String getlname(String lname)
{
return lname;
}
public String getfname(String fname)
{
return fname;
}
于 2013-09-19T09:55:38.867 回答
0
您可以使用 SharedPreferences 将 json 保存在应用程序的存储空间中。
代码 /* 保存 */
SharedPreferences pref = context.getSharedPreferences("mydata", MODE_PRIVATE);
Editor editor = pref.edit();
editor.put("myjson", json.toString());
editor.commit();
/* 恢复 */
JSONObject ret = null;
SharedPreferences pref = context.getSharedPreferences("mydata", MODE_PRIVATE);
String jsonStr = pref.getString("myjson", null);
if (!TextUtil.isEmpty(jsonStr)) {
ret = new JSONObject(jsonStr); // need try-catch
}
======
每次启动应用程序时都进行恢复。
对于第二部分“一旦互联网连接,应用程序会自动加载 json 值”。
您需要收听网络状态更改广播。当您收到广播说网络(或wifi)已连接时,从服务器获取最新的json,替换内存中的json并将其保存到SharedPreferences
于 2015-08-20T08:36:08.757 回答