0

私は通常、インターフェイスを使用して、Parcelableあるアクティビティから別のアクティビティにデータを渡します。データがそれほど多くない場合は、正常に機能しています。ただし、アクティビティに大量のデータを渡さなければならない場合があります。これらのデータのマーシャリングはエラーなしで行われるように見えますが、アンマーシャリングは次のようなエラーになります:

07-23 14:26:34.215: E/AndroidRuntime(29379): java.lang.OutOfMemoryError: java.lang.Object[] of length 1075971147 exceeds the VM limit

非整列化するにはデータが多すぎるようです。本当にハックな解決策 (私は本当に好きではありません) は、その特別なアクティビティにそのデータを渡すための静的メソッドを与え、 でそれを探すことonCreate()です。これは、少なくともソースを制御できるアクティビティでは機能しますが、そうでない場合は失敗します。

あるアクティビティから別のアクティビティに大量のデータを渡すために、他に許容できる試行があるかどうかを知りたいです。Parcelable インターフェース用にすでに書いたコードを再利用できれば本当にいいのですが、それは必須ではありません

4

2 に答える 2

1

グローバル変数を作成するのはどうですか(ここで説明したように)?私は同じ問題に苦しんでいた時がありました.

于 2012-07-23T12:55:15.733 に答える
1

バス アーキテクチャ (EventBus/Otto) を使用すると、任意の Android コンポーネント間で任意の POJO を転送できます。

于 2015-06-10T19:21:35.543 に答える