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