Главная » Разработка для Android » Переопределение событий, связанных с жизненным циклом приложения

0

Класс Application — обработчики событий, отвечающие за создание и за- вершение работы приложения, поведение программы при нехватке памяти и изменениях конфигурации (описаны в предыдущем разделе).

Переопределяя эти методы, вы можете предусмотреть поведение  при- ложения  в подобных ситуациях.

onCreate. Вызывается при создании  приложения, переопределяется для инициализации синглтона программы и создания и инициализа- ции свойств, в которых хранятся состояния приложения или общие ресурсы.

onTerminate. Может быть вызван при преждевременном завершении работы объекта Application.  Хотя нет никакой  гарантии, что так все и будет, имейте  это в виду. Если  работа приложения прерывается ядром, чтобы освободить  ресурсы  для других  программ,  процесс

завершится без предупреждения и без вызова метода onTerminate из объекта Application.

onLowMemory. Предоставляет возможность хорошо оптимизиро- ванным  приложениям освобождать  дополнительную память,  когда система работает в условиях ограниченных ресурсов. Как правило, вы- зывается в ситуациях, когда фоновые процессы уже закрыты, а памяти для приложений, находящихся на переднем плане, все еще не хватает. Переопределяйте этот метод, чтобы очищать  кэш или освобождать ненужные ресурсы.

onConfigurationChanged. В отличие  от объектов  Activity  ваше при- ложение  не перезапускается при изменениях конфигурации. Пере- определяйте этот метод, если вам необходимо обрабатывать изменения конфигурации на уровне приложения.

Как видно из листинга 3.8, в процессе переопределения этих обработчи- ков всегда нужно вызывать одноименные  методы родительского класса.

Листинг 3.8. Переопределение обработчиков, связанных с жизненным циклом приложения

public class MyApplication extends Application {

private static MyApplication singleton;

// Возвращает экземпляр данного класса public static MyApplication getInstance() {

return singleton;

}

@Override

public final void onCreate() {

super.onCreate();

singleton = this;

}

@Override

public final void onTerminate() {

super.onTerminate();

}

@Override

public final void onLowMemory() {

super.onLowMemory();

}

@Override

public final void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

}

}

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии