0

我想在我的设备中存储 json 值。因为每次应用程序都需要时间来加载 json 值。而不是多次加载,只想加载整个 json 值一次。如果没有互联网,我可以使用它。连接互联网后,应用程序会自动加载 json 值。我怎样才能做到这一点 ?

4

2 回答 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 回答