Там было изменение поведения в Android N
Цитирование the docs:
Многие API-интерфейсы платформы уже начали проверку на большие полезные данные отправленное через Binder
сделок, а теперь система rethrows TransactionTooLargeExceptions
как RuntimeExceptions
, вместо беззвучный каротаж или подавление их. Одним из распространенных примеров является хранение слишком большого количества данных в Activity.onSaveInstanceState()
, что вызывает ActivityThread.StopInfo
, чтобы выбросить RuntimeException
, когда ваше приложение целей Android 7.0
.
Примечание: Программы ориентации M или ниже не будет бросать исключение, они просто молча войти или подавить их
Как решить эту проблему:
Переосмысление почему вам нужно так много данных в связке в первую очередь.
Если двоичные данные или растровые, то лучше сохранить его в файл и пройти путь в пачке.
Если вы передаете слишком много объектов
Вы можете использовать библиотеки как Otto
, EventBus
, чтобы избежать этого.
Просто передайте необходимую информацию, необходимую для создания объекта еще раз.
Создайте одноэлементный класс и установите там данные и получите доступ к нему в другом Управлении или фрагменте.
@VivekMishra это пытается решить вопрос не только заявить, почему это происходит не дубликат –
Чтобы добавить к уже существующему ответ я отправляю ссылку на блог, который имеет образец кода HTTP: //blog.sqisland.com/2016/09/transactiontoolargeexception-crashes-nougat.html – Raghunandan
@Raghunandan Вы можете редактировать ответ и добавить ссылку –