Обратный вызов
07.07.2017Первый обратный вызов Android инициирует, когда обнаруживает изменение в конфигурации. Активность получает шанс сохранить состояние, которое будет восстановлено в конце обработки изменения конфигурации, после создания новой активности. Обратный вызов onSaveInstanceState() активизируется перед обращением к onStop(). Любое существующее состояние может быть сохранено в объекте Bundle. Этот объект будет передаваться двум другим обратным вызовам (onCreate() и onRestoreInstanceState()), когда активность создается повторно. Чтобы восстановить состояние активности, нужно только поместить соответствующую логику в один или другой метод.
Стандартный обратный вызов onSaveInstanceState() обладает рядом интересных характеристик. Например, он проходит по текущей активной иерархии представлений и сохраняет значения для каждого представления, имеющего android:id. Это значит, что если есть представление EditText, в котором пользователь что-нибудь ввел, введенные данные будут доступны на другой стороне цикла разрушения/созда- ния активности для заполнения EditText перед возвратом управления пользователю. Проходить по иерархии представлений и сохранять это состояние вручную не понадобится. При переопределении onSaveInstanceState() не забудьте о вызове super. onSaveInstanceState() с объектом Bundle, который сохранит состояние. Это не сохраненные представления, а только атрибуты их состояния, которые должны передаваться через границы разрушения/создания. Любите драйв и азарт? Попробуйте игры для PS4 купить и проводите свободное время с удовольствием.
Для сохранения данных в объекте Bundle используйте такие методы, как putInt() для целых чисел и putString() для строк. В классе android.os.Bundle определено довольно много методов подобного рода, так что вы не ограничены целыми числами и строками. Например, putParcelable() позволяет сохранять сложные объекты. Каждый метод putXXX() используется со строковым ключом, с помощью которого сохраненное значение можно извлечь позже.