私は2つのアプリケーション間でデータを共有しようとしています..最初にファイルをSDカードに保存してからそれを読むことを考えましArrayList
た..しかし、この解決策はうまくいきません..Object
実装Parcelable
..
これを達成するために他にどのような方法に従うことができますか?
注:
アクティビティは同じアプリケーション内ではありません。
ArrayList
はクラスであり、カスタム オブジェクトも である限り、Serializable
に配置できます。次のようになります。Intent
Serializable
Intent intent = new Intent(YourActivity.this, YourReceiverActivity.class);
intent.putExtra("YourArrayList", new ArrayList<YourSerializableObject>());
startActivity(intent);
次に、それを取得します。
Intent intent = getIntent();
ArrayList<YourSerializableObject> list =
(ArrayList<YourSerializableObject>)intent.getSerializableExtra("YourArrayList");
オブジェクトが であるためには、含まれているすべてのメンバーも同様Serializable
である必要があります。Serializable
誰もこれについて言及しなかった理由はわかりませんが、最善の策は BY FAR SQLite です。比較してメモリを占有しないため、渡すオブジェクトよりもはるかに効率的です。
ArrayList< CustomObject> の静的メンバーの種類を持つ静的クラス (たとえば、DataChannel と呼ばれる) を使用してから、静的 get/set を使用してアクティビティ間でオブジェクトを渡すことができます。
次を使用して、オブジェクトの配列をインテントにエクストラとして格納できます。
public Intent putExtra (String name, Parcelable[] value)
カスタム URI のインテントを受け取るように他のアプリを構成する必要があります。