Activity в Android

Материал из AOW

Перейти к: навигация, поиск

Набор классов SDK Android

Android SDK включает набор классов, наследованных от Activity. Они предназначены для упрощения работы с виджетами, которые часто встре- чаются в обычном пользовательском интерфейсе. Перечислим некоторые из них (наиболее полезные).

• MapActivity. Инкапсулирует обработку ресурсов, необходимых для поддержки элемента MapView внутри Активности. Больше информа- ции о классах MapActivity и MapView в главе 8.

• ListActivity. Обертка для класса Activity, главная особенность кото- рой — виджет ListView, привязанный к источнику данных, и обработ- чики, срабатывающие при выборе элемента из списка.

• ExpandableListActivity. То же самое, что и ListActivity, но вместо ListView поддерживает ExpandableListView.

• TabActivity. Позволяет разместить несколько Активностей или Пред- ставлений в рамках одного экрана, используя вкладки для переклю- чения между элементами.

Обработчики, следящие за сменой состояний Активности=

package com.paad.myapplication;
import android.app.Activity;
import android.os.Bundle;
public class MyActivity extends Activity {
  // Вызывается при входе в "полноценное" состояние.
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Инициализируйте Активность.
  }
  // Вызывается, когда метод onCreate завершил свою работу, 
  // и используется для восстановления состояния пользовательского 
  // интерфейса
  @Override
  public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    // Восстановите состояние UI из переменной savedInstanceState.
    // Этот объект типа Bundle также был передан в метод onCreate.
  }
  // Вызывается перед тем, как Активность становится "видимой".
  @Override
  public void onRestart(){
    super.onRestart();
    // Загрузите изменения, учитывая то, что Активность
    // уже стала "видимой" в рамках данного процесса.
  }
  // Вызывается в начале "видимого" состояния.
  @Override
  public void onStart(){
    super.onStart();
    // Примените к UI все необходимые изменения, так как
    // Активность теперь видна на экране.
  }
  // Вызывается в начале "активного" состояния.
  @Override
  public void onResume(){
    super.onResume();
    // Возобновите все приостановленные обновления UI,
    // потоки или процессы, которые были "заморожены",
    // когда данный объект был неактивным.
  }
  // Вызывается для того, чтобы сохранить пользовательский интерфейс
  // перед выходом из "активного" состояния.
  @Override
  public void onSaveInstanceState(Bundle savedInstanceState) {
    // Сохраните состояние UI в переменную savedInstanceState.
    // Она будет передана в метод onCreate при закрытии и
    // повторном запуске процесса.
    super.onSaveInstanceState(savedInstanceState);
  }
  // Вызывается перед выходом из "активного" состояния
  @Override
  public void onPause(){
    // "Замораживает" пользовательский интерфейс, потоки 
    // или трудоемкие процессы, которые могут не обновляться, 
    // пока Активность не находится на переднем плане.
    super.onPause();
  }
  // Вызывается перед тем, как Активность перестает быть "видимой".
  @Override
  public void onStop(){
    // "Замораживает" пользовательский интерфейс, потоки 
    // или операции, которые могут подождать, пока Активность
    // не отображается на экране. Сохраняйте все введенные
    // данные и изменения в UI так, как будто после вызова
    // этого метода процесс должен быть закрыт.
    super.onStop();
  }
  // Вызывается перед выходом из "полноценного" состояния.
  @Override
  public void onDestroy(){
    // Очистите все ресурсы. Это касается завершения работы
    // потоков, закрытия соединений с базой данных и т. д.
    super.onDestroy();
  }
}


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

Личные инструменты

Разработка веб-сайтов, автоматизация.
По всем вопросам обращайтесь по телефонам:

+7 495 640 29 90
http://artofweb.ru