«`html
Программа Activity для Android
Вступление
Activity является основным строительным блоком пользовательского интерфейса в приложениях Android. Это класс, который представляет собой отдельный экран в приложении и отвечает за управление жизненным циклом фрагментов, отображаемых в этом экране.
Жизненный цикл Activity
Activity проходит через ряд состояний жизненного цикла:
Created: Когда Activity создается в первый раз.
Started: Когда Activity становится видимым для пользователя.
Resumed: Когда Activity получает фокус.
Paused: Когда Activity теряет фокус.
Stopped: Когда Activity больше не видна для пользователя.
Destroyed: Когда Activity завершает свою работу.
Методы жизненного цикла
Для каждого состояния жизненного цикла существует соответствующий метод, вызываемый системой для уведомления Activity о переходе в это состояние. Эти методы:
onCreate(): Вызывается при создании Activity.
onStart(): Вызывается, когда Activity становится видимым.
onResume(): Вызывается, когда Activity получает фокус.
onPause(): Вызывается, когда Activity теряет фокус.
onStop(): Вызывается, когда Activity больше не видна для пользователя.
onDestroy(): Вызывается при завершении работы Activity.
Инициализация данных
Наиболее распространенным местом для инициализации данных в Activity является метод onCreate(). В этом методе можно загружать данные из базы данных, сети или локального хранилища.
Пример:
«`java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Инициализируем данные из БД
DatabaseHelper db = new DatabaseHelper(this);
List
// Инициализируем данные из сети
NetworkHelper networkHelper = new NetworkHelper(this);
String data = networkHelper.fetchData();
}
«`
Обработка пользовательского ввода
Activity может обрабатывать пользовательский ввод через пользовательский интерфейс, такой как кнопки, текстовые поля и прочее. Для обработки ввода обычно используются прослушиватели.
Пример:
«`java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button submitButton = findViewById(R.id.submitButton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Обработка нажатия кнопки здесь
}
});
}
«`
Управление фрагментами
Activity может содержать один или несколько фрагментов, которые представляют собой повторно используемые части пользовательского интерфейса. Фрагменты можно добавлять, удалять и заменять во время выполнения.
Пример:
«`java
// Добавление фрагмента
Fragment fragment = new MyFragment();
getSupportFragmentManager()
.beginTransaction()
.add(R.id.fragmentContainer, fragment)
.commit();
// Удаление фрагмента
getSupportFragmentManager()
.beginTransaction()
.remove(fragment)
.commit();
// Замена фрагмента
Fragment newFragment = new NewFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragmentContainer, newFragment)
.commit();
«`
Намерения
Намерения используются для взаимодействия между компонентами Android-приложения, такими как Activity. Намерение представляет собой объект, который содержит информацию о том, что должно быть сделано, но не как это сделать.
Пример использования намерения для запуска другой Activity:
«`java
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
«`
Стеки и задачи
Activity организованы в стеки и задачи. Стеки представляют собой группы Activity, открытых пользователем в последовательности. Задачи представляют собой группы стеков.
Когда пользователь нажимает на кнопку «Домой», текущая Activity сохраняется в стеке и становится приостановленной. Когда пользователь повторно открывает приложение, система восстанавливает стеки и возобновляет Activity вверху стека.
Заключение
Activity является основой пользовательского интерфейса в приложениях Android. Она управляет жизненным циклом экранов, обрабатывает пользовательский ввод и поддерживает фрагменты. Понимание Activity играет решающую роль в разработке качественных и эффективных приложений Android.
«`