新しいアクティビティを開始し、現在のアクティビティからいくつかのデータを渡したいとします。データがプリミティブ型の場合は、単純にインテントを使用してエクストラを追加することができますが、arraylistsやオブジェクトなどのより複雑なデータ構造に対してはどのようにしますか?androidのアクティビティ間で非プリミティブ型のデータを渡す
23
A
答えて
58
を達成するためにGoogle Protocol Bufferを使用してのことを聞いたあなたは、いくつかのオプションがありき:あなたはParcelable
インタフェースを実装するクラスでは、より複雑な構造をラップすることができ
- を、どの余分に格納することができます
Serializable
インターフェイスを実装するクラスでより複雑な構造体をラップすることができます。これは余分に格納することができます- 彼らは
- すべて同じプロセスであるので、あなただけの投稿者がこのような、共通コンポーネントを使用し、指摘したようにあなたは、外部記憶装置(ファイル、データベース、
SharedPreferences
) - を使用し、周りのものを渡すために静的データメンバを使用しますカスタムとして
Application
またはローカルService
あなたがしたくないことは、エクストラ経由で大きなものを渡すことです。たとえば、カメラから写真を取得するアプリケーションを作成している場合、それらを余分なものに渡すことは望ましくありません。静的なデータメンバを使用します(それは耳障りです)。インテントは、クロスプロセスで動作するように設計されています。つまり、大量のデータをコピーする必要があります。大量のデータをコピーする必要はありません。
2
あなたが使用しているデータをすべてのアクティビティがコンテキストから取得できるApplicationオブジェクトに格納することを私が認識しているオプションがあります。
私はまた、より高性能ソリューション
+0
私は、Appide Objectに対して争っているいくつかの投稿を読んだことがあります。たとえば、http://www.developerphil.com/dont-store-data-in-the-application-object/ – Muhammad
関連する問題
- 1. イベントの非プリミティブ型
- 2. 2つのアクティビティ間でデータを渡す
- 3. インテントでアクティビティ間でデータを渡す
- 4. Androidのアクティビティ間にプロトタイプを渡す
- 5. Android:アクティビティ間でFacebookセッションを渡す
- 6. Androidのアクティビティ間で効率的にカスタムオブジェクトデータを渡す[Mono Android]
- 7. Androidのインテントを使用して、アクティビティ間でデータをフラグメントに渡す方法
- 8. ダイアログからアクティビティにデータを渡すAndroid
- 9. プリミティブ型をWCF RESTfulサービスに渡す
- 10. クラス型パラメータ渡しのJavaプリミティブ
- 11. アンドロイドの2つのアクティビティ間でデータを渡す方法は?
- 12. ブラウザのJavaScriptとアクティビティの間でデータを渡す
- 13. androidのタブレイアウトで1つのアクティビティから別のアクティビティへデータを渡す方法
- 14. Android:ボタンで他のアクティビティのデータを渡す方法
- 15. アクティビティ間でハンドラを渡す
- 16. アクティビティ間でフラグメントを渡す
- 17. 2つのアクティビティ間でデータを渡す方法
- 18. C++でのクラス内の非プリミティブな静的データ型の初期化
- 19. VBAとdllの間で任意の型のデータを渡す
- 20. 別のスレッドクラスからのデータをAndroidのアクティビティに渡す方法
- 21. アクティビティ間でクラスのインスタンスを渡す
- 22. アクティビティの間にインテントを渡すとAndroidアプリがクラッシュする
- 23. プリミティブ型
- 24. Java:非プリミティブ型の配列をコピーする
- 25. プリミティブ型のスカラマップ値型
- 26. アクティビティ間でのパスワードの受け渡し
- 27. アクティビティ間で値を渡す方法
- 28. アクティビティ間でカスタムクラスを渡す方法
- 29. Android:2つのアクティビティ間で画像とそのURIを渡す際の問題
- 30. アクティビティのデータをフラグメントに渡す方法
私が疑ったような選択肢がたくさんあります。ありがとう!この特定のプロジェクトでは、オプション3を選ぶことにしました。それはかなりではありませんが、それは仕事です! – aspartame
私はParcelablesの大ファンです...彼らは簡単に構築することができ、簡単に渡すことができます。 –
私はそれらを憎む。彼らはメンテナンスの悪夢で、非常にエラーが発生しやすいです。単純にオブジェクトをシリアライズ可能なものとして渡すだけの利点は、パフォーマンスが向上することです。 – Matthias