0
時々TransactionTooLargeException
がonSaveInstanceState
になることがあります。だから私は私のBundle
のサイズが大きすぎることが原因であると仮定しています。私はそれを最小限にするのに必要な量のおおよその見積もりを得ることができるように正確な/約サイズを記録したいと思います。バンドルのサイズをMbでどのように記録するのですか?
は今、私はそのサイズを見つけることができる唯一の方法はTransactionTooLargeException
がプロセスでのDexを利用するには
E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 1026104)
D/AndroidRuntime: Shutting down VM
I/art: Compiler allocated 6MB to compile void com.example.ExampleModel.writeToParcel(android.os.Parcel, int)
E/UncaughtException: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1026104 bytes
あなたは間違った方向から問題を攻撃していると思います。なぜあなたは保存すべきたくさんのデータを持っていますか?バンドルのサイズは、ほとんどKを越えることはほとんどありません。ファイル(画像など)やデータベース(パースされた大規模なネットワーク応答など)に格納されるものを保存している可能性があります。 –
私は全くあなたに同意します。そのサイズを記録する方法があれば、私はちょうど興味がありました。 –
それをパーセルに書き込んでパーセルをマーシャリングすると、内容のバイト[]が返されます。そのサイズを取る。 –