Я должен добавить, что пакеты используются действиями для передачи данных себе в будущем.
Когда экран поворачивается или когда запускается другое действие, вызывается метод protected void onSaveInstanceState(Bundle outState)
, и действие уничтожается.Позже создается другой экземпляр действия, и вызывается public void onCreate(Bundle savedInstanceState)
.Когда первый экземпляр действия создан, пакет является нулевым;и если пакет не равен NULL, действие продолжается, если какое-то дело было начато его предшественником.
Android автоматически сохраняет текст в текстовых полях, но не все, и иногда появляются небольшие ошибки.
Самый распространенный анти-паттерн, тем не менее, предполагает, что onCreate()
выполняет только инициализацию.Это неверно, потому что он также должен восстанавливать состояние.
Существует возможность отключить это поведение «воссоздать активность при вращении», но это не предотвратит ошибки, связанные с перезапуском, а просто сделает ихболее сложно упомянуть.
Обратите также внимание, что единственный метод, вызов которого гарантирован, когда действие будет уничтожено, - onPause()
.(См. График жизненного цикла активности в документации.)