Почему не стоит передавать файл через Bundle

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

Ответ

Файлы не стоит передавать через Bundle, потому что Bundle предназначен для передачи небольших данных (примитивы, Parcelable, Serializable). Файлы могут быть большими, что вызовет TransactionTooLargeException.

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

  • Передавать URI файла через ContentProvider
  • Использовать временные файлы в кэше
  • Хранить файл в Application-классе (если это уместно)

Пример передачи URI:

val fileUri = FileProvider.getUriForFile(context, "com.example.fileprovider", file)
intent.putExtra("file_uri", fileUri)