Android アプリケーションの 2 つのアクティビティ間でいくつかのオブジェクトを渡すために、それらに parcelable を実装させ、次のアクティビティに送信しました。残念なことに、オブジェクトが大きすぎるために「FAILED BINDER TRANSACTION」エラーが発生することがあります。
それを修正する解決策は 1 つしか見つかりませんでした。それは、オブジェクトを複数の小さなオブジェクトに分割することです。これは私にとって解決策というよりも厄介なハックのように思われるので、別の方法を探しました。
そのエラーを回避するためによく言及される別の方法は、オブジェクトをシングルトンによって提供される静的マップに配置し、オブジェクトのキーを送信することです。私もこの方法は苦手です。onSaveInstanceState() でバンドルに入れることができないため、必要なすべてのオブジェクトをこのマップで使用できるように保ちながら、多くのメモリを使用しないように、マップのサイズを追跡する必要があります。これには、多くの余分な開発が必要なようです。
私自身の解決策:
オブジェクトの json 文字列表現が実際のオブジェクトよりもはるかに小さいことがわかりました (したがって、バンドルを介して簡単に渡すことができます)。では、単純にオブジェクトの文字列表現を送信して 2 番目のアクティビティで再構成するよりも、singelton ソリューションの利点はありますか?
挨拶だにじょう