Почему не стоит передавать Bitmap в Intent

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

Ответ

Передача Bitmap через Intent не рекомендуется, так как Bitmap реализует Parcelable, но может превысить лимит размера данных (обычно 1MB для Binder). Это вызовет TransactionTooLargeException.

Лучшие альтернативы:

  1. Сохранение во временный файл и передача URI через Intent
  2. Использование глобального кеша (например, Application-класс)
  3. Использование библиотек типа Glide для загрузки по URI

Пример с файлом:

// Сохранение
val file = File(context.cacheDir, "temp.png")
bitmap.compress(Bitmap.CompressFormat.PNG, 100, file.outputStream())

// Передача
intent.putExtra("image_path", file.absolutePath)