私は2つのアプリケーション間でデータを共有しようとしています..最初にファイルをSDカードに保存してからそれを読むことを考えましArrayListた..しかし、この解決策はうまくいきません..Object実装Parcelable..
これを達成するために他にどのような方法に従うことができますか?
注:
アクティビティは同じアプリケーション内ではありません。
ArrayListはクラスであり、カスタム オブジェクトも である限り、Serializableに配置できます。次のようになります。IntentSerializable
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 のインテントを受け取るように他のアプリを構成する必要があります。