Какое ограничение в onSaveInstanceState

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

Ответ

Максимальный размер данных, которые можно сохранить в Bundle через onSaveInstanceState(), составляет 1 МБ (1024 КБ). Если превысить этот лимит, система выбросит TransactionTooLargeException.

Рекомендации:

  • Сохраняйте только минимально необходимые данные (ID, простые флаги)
  • Для больших данных используйте другие механизмы (ViewModel, база данных, SharedPreferences)

Пример:

override fun onSaveInstanceState(outState: Bundle) {
    super.onSaveInstanceState(outState)
    outState.putString("KEY_USER_ID", userId) // OK
    // outState.putSerializable("LARGE_OBJECT", bigData) // Плохая практика!
}