Разработка Android-приложений в деталях - страница 19

Шрифт
Интервал


onTouchEvent – вызывается для необработанного события MotionEvent при прикосновении к экрану.

onTrackballEvent – вызывается для необработанного события MotionEvent при перемещении указателя.

onTrimMemory – вызывается при сокращении ненужной памяти у процесса.

onUserInteraction – вызывается при взаимодействии с пользователем.

onUserLeaveHint – вызывается, когда Activity-компонент перемещается на задний план в результате действий пользователя.

onWindowAttributesChanged – вызывается при изменении атрибутов окна.

onWindowFocusChanged – вызывается при потере или получении фокуса окном.

onWindowStartingActionMode – вызывается при запуске режима ActionMode для окна.

Другой метод обратного вызова класса android.app.Activity, который рекомендуется переопределять – это метод onPause (), вызываемый при потере фокуса Activity-компонентом и который предназначен для сохранения состояния Activity-компонента, так как Android-приложение не контролирует полностью жизненный цикл своих компонентов – Android-система может уничтожать приостановленные Activity-компоненты для освобождения ресурсов памяти.

В методе onPause () производится сохранение данных, общих для приложения или для использования другими приложениями, с помощью ContentProvider-компонента, или прямое сохранение измененных данных с помощью объекта SharedPreferences (сохранение пар имя-значение примитивных типов данных), метода openFileOutput () класса android.content.Context (сохранение данных во внутреннем хранилище устройства), метода getCacheDir () класса android.content.Context (кэширование данных), метода getExternalStorageDirectory () класса android. os. Environment (сохранение данных в карте памяти), сохранение данных в базе данных SQLite, в Web-сервисах с использованием пакетов java.net.* и android.net.*.

Использование метода onPause () для сохранения состояния Activity-компонента имеет свои преимущества, по сравнению с применением метода onSaveInstanceState (), так как метод onSaveInstanceState () не будет вызываться Android-системой, если Activity-компонент был уничтожен пользователем, например, нажатием клавиши BACK.

Переопределение методов onCreate (), onStart (), onRestart (), onResume (), onPause (), onStop (), onDestroy () и др. должно сопровождаться вызовом суперкласса с помощью ключевого слова super.