Иногда я получаю это досадное исключение в своей основной деятельности.
трассировка стека выглядит следующим образом:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tomatedigital.lottogram, PID: 4430
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 543588 bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4156)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: android.os.TransactionTooLargeException: data parcel size 543588 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:761)
at android.app.IActivityManager$Stub$Proxy.activityStopped(IActivityManager.java:5147)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4148)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Сама трассировка не очень полезна, так как она не указывает, какой компонентили какой идентификатор транзакции или тег связан с Исключением (Google, пожалуйста, подумайте об отладке дерьма, которое вы там поместили) ... но я подозреваю, что это повторный просмотр, который я имею в своей основной деятельности.
Этот повторный просмотр может быть перегружен, ТЫСЯЧИ предметов. каждая из них содержит: 3 маленькие строки, 1 большую строку и одно маленькое растровое изображение.
Если это окно просмотра перегрузок перегружено и действие приостановлено, возникает это исключение. Так как создается окно повторного просмотра, раздувающее layout.xml, android сохраняет его состояние автоматически.
Есть ли простой способ обойти эту проблему?
Можно ли настроить приложение так, чтобы оно разрешало "очень большие транзакции"?
Что я могу сделать?
================ ОБНОВЛЕНИЕ =================== чтобы предоставить дополнительную информацию о моей деятельности
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
outState.putSerializable("media", this.media); //this is a domain class
outState.putBoolean("canceled", this.canceled);
outState.putInt("speed", this.speed);
outState.putLong("startTime", this.startTime);
outState.putSerializable("comments", (Serializable) this.adapter.getList()); //this is the large data
outState.putBoolean("commentLoadComplet", this.complete);
outState.putSerializable("fetched", (Serializable) this.fetched);
outState.putSerializable("igiboAttendees", (Serializable) this.igiboAttendees);
outState.putLong("winnerId", this.winnerId);
super.onSaveInstanceState(outState);
}