Bundle
オブジェクトがParcel
秒をサポートしていますが、Parcel.marshall()
documentationは言う:
あなたがここにを取得するデータはが永続ストレージ(ローカルディスク上に、ネットワークを介して、など)のいずれかの種類には設置しないでください。そのためには、標準的なシリアル化または別の種類の一般的なシリアル化メカニズムを使用する必要があります。パーセルマーシャル表現は、ローカルIPCに対して高度に最適化されているため、異なるバージョンのプラットフォームで作成されたデータとの互換性を維持しようとはしません。
easistシリアル化メカニズムは、おそらく読みやすいテキスト形式のJSONです。 JSON文字列を作成するには 、あなたはJSONObject
/JSONArray
オブジェクトのツリー構築する必要があります。
// write
JSONObject json = new JSONObject();
json.put("u", mp);
JSONArray mealplan_json = new JSONArray();
mealplan_json.put(...); // fill arrays recursively
json.put("m", mealplan_json);
String text = json.toString();
// read
JSONObject json = new JSONObject(text);
mp = json.getString("u");
JSONArray mealplan_json = json.getJSONArray("m");
...
あなたがバイナリエンコードでスペースを節約したい場合は、シリアライズを使用する必要があり、基本タイプをサポートしており、正しくjava.io.Serializableを実装する任意のオブジェクト:
// write
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(mp);
oos.writeObject(mealplan);
oos.close();
byte[] bytes = bos.toByteArray();
// read
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
mp = (String) ois.readObject();
mealplan = (String[][][][]) ois.readObject();
アプリの書き込みのすべてのバージョンを確保し、読むために必要がありますので、このバイナリシリアルは、任意のキー名(「U」、「M」)を格納しませんのでご注意くださいsの中の同じオブジェクトame order。
キー/値構造体を使用する場合は、独自のヘルパー関数を実装する必要があります。独自のヘルパー関数を実装する必要があります。独自のヘルパー関数は、別々のキー文字列を前面に置き、任意の数のキー/値ペアをマップに読み込みます。 あるいは、所望の要素(このクラスは、あなたのアプリケーションの将来のバージョンで互換性のままということに注意してください)が含まれ、独自の直列化可能なオブジェクトを作成します。
class MealPlanData implements Serializable {
String u;
String[][][][] mp;
};
だけBundle
オブジェクトを持っており、その構造がわからない場合キー/値を手動で処理する必要があります。
// write
oos.writeInt(bundle.size());
for (String key : bundle.keySet()) {
Object value = bundle.get(key);
oos.writeObject(key);
oos.writeObject(value);
}
// read
int size = ios.readInt();
Map<String, Object> map = new ArrayMap<String, Object>();
for (int i = 0; i < size; i++) {
String key = (String) ios.readObject();
Object value = ios.readObject();
map.put(key, value);
}
blob受け入れ配列文字列型データ.. like画像配列のようなものです。この目的のためだけにBLOBを使用しました。 – Saveen