Какие знаешь ограничения Bundle

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

Ответ

Размер Bundle ограничен 1 МБ для транзакций между процессами (например, Activity ↔ Activity). При превышении лимита возникает TransactionTooLargeException.

Локальные Bundle (в рамках одного процесса) могут быть больше, но лучше избегать больших данных.

Ограничения:

  • Не поддерживает Parcelable/Serializable объекты > 1 МБ
  • Нельзя передавать несериализуемые объекты (например, View)
  • При повороте экрана данные могут быть утеряны, если не сохранены через onSaveInstanceState()

Пример:

val bundle = Bundle().apply {
    putString("key", "value")  // OK
    putSerializable("largeData", hugeObject)  // Рискнуть исключением
}

Для больших данных используйте: ViewModel, базу данных, SharedPreferences или файлы.