Какие знаешь причины возникновения TransactionTooLargeException

«Какие знаешь причины возникновения TransactionTooLargeException» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Это исключение возникает при превышении лимита размера данных в Binder-транзакции (обычно 1MB). Основные причины:

  1. Передача больших объектов через Intent (например, Bitmap)
// Плохо:
intent.putExtra("large_data", hugeByteArray)
  1. Сохранение больших данных в Bundle (при повороте экрана)
  2. Передача сложных объектов между процессами через IPC
  3. Накопление данных в savedInstanceState

Как избежать:

  • Использовать временное хранилище (файлы, SharedPrefs)
  • Оптимизировать передаваемые данные (например, сжимать изображения)
  • Использовать ViewModel вместо сохранения в Bundle
  • Для IPC - разбивать данные на части