0

json 値をデバイスに保存したいと考えています。毎回アプリケーションがjson値をロードするのに時間がかかるためです。ロードする回数を実行する代わりに、json 値全体を 1 回ロードするだけです。インターネットがなくても、それで作業できます。インターネットが接続されると、アプリケーションは自動的に json 値を読み込みます。これどうやってするの ?

4

2 に答える 2

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
}

======

アプリを起動するたびに復元を行います。

2 番目の部分「インターネットが接続されると、アプリケーションは自動的に json 値を読み込みます。」

ネットワーク状態変更ブロードキャストをリッスンする必要があります。ネットワーク(またはwifi)が接続されているとブロードキャストされたら、サーバーから最新のjsonを取得し、メモリ内のjsonを置き換えてSharedPreferencesに保存します

于 2015-08-20T08:36:08.757 に答える
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 に答える