Разделы презентаций


Лекция № 7. по курсу Жизненный цикл активностей Москва 20 20

Содержание

Секундомер

Слайды и текст этой презентации

Слайд 1Лекция №7. по курсу «Жизненный цикл активностей»
Москва 2020

Лекция №7.  по курсу «Жизненный цикл активностей»Москва 2020

Слайд 2Секундомер

Секундомер

Слайд 3Объекты Handler
Handler — класс Android, который может использоваться для планирования

выполнения кода в некоторый момент в будущем. Также класс может

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

В нашем примере Handler будет использоваться для планирования выполнения кода секундомера каждую секунду.
Чтобы использовать класс Handler, упакуйте код, который нужно запланировать, в объект Runnable, после чего используйте методы post() и postDelayed() класса Handler для определения того, когда должен выполняться код. Давайте поближе познакомимся с этими методами.
Объекты HandlerHandler — класс Android, который может использоваться для планирования выполнения кода в некоторый момент в будущем.

Слайд 4Объекты Handler
Метод post()
Метод post() передает код, который должен быть выполнен

как можно скорее (обычно почти немедленно). Метод post() вызывается с

одним параметром — объектом типа Runnable. Объект Runnable в мире Android, как и в традиционном языке Java, представляет выполняемое задание. Код, который требуется выполнить, помещается в метод run() объекта Runnable, а объект Handler позаботится о том, чтобы код был выполнен как можно быстрее. Вызов метода выглядит так:
final Handler handler = new Handler();
handler.post(Runnable);
Метод postDelayed()
Метод postDelayed() работает почти так же, как post(), но выполнение кода планируется на некоторый момент в будущем. Метод postDelayed() получает два параметра: Runnable и long. Объект Runnable содержит выполняемый код в методе run(), а long задает задержку выполнения кода в миллисекундах. Код выполняется при первой возможности после истечения задержки. Вызов метода выглядит так:
Объекты HandlerМетод post()Метод post() передает код, который должен быть выполнен как можно скорее (обычно почти немедленно). Метод

Слайд 5Объекты Handler

Объекты Handler

Слайд 6Объекты Handler
final Handler handler = new Handler();
handler.postDelayed(Runnable, long);
Чтобы обновить секундомер,

мы будем многократно планировать выполнение кода с использованием Handler; при

этом каждый раз будет назначаться задержка продолжительностью 1000 миллисекунд. Каждое выполнение кода сопровождается увеличением переменной seconds и обновлением надписи.
Полный код метода runTimer(): private void runTimer() {
final TextView timeView = (TextView)findViewById(R.id.time_view);
final Handler handler = new Handler();
handler.post(new Runnable() { Вызов метода post() с передачей нового объекта Runnable. Метод post() обеспечивает выполнение без задержки, так что код в Runnable будет
выполнен практически немедленно. @Override
public void run() {
Объекты Handlerfinal Handler handler = new Handler();handler.postDelayed(Runnable, long);Чтобы обновить секундомер, мы будем многократно планировать выполнение кода с

Слайд 7Запуск приложения
int hours = seconds/3600;
int minutes = (seconds%3600)/60;
int

secs = seconds%60;
Пользователь В файле AndroidManifest.xml приложения указано, какая активность

должна использоваться как стартовая.
Android проверяет, существует ли процесс для этого приложения, и если не существует — создает новый процесс
Вызывается метод onCreate() активности
При завершении работы onCreate() макет отображается на устройстве


Запуск приложенияint hours = seconds/3600; int minutes = (seconds%3600)/60; int secs = seconds%60;Пользователь В файле AndroidManifest.xml приложения

Слайд 8Поворот экрана
1. Пользователь запускает приложение и щелкает на кнопке Start,

чтобы секундомер заработал.
2 Пользователь поворачивает устройство 3. Метод onCreate() выполняется заново,

и вызывается метод runTimer(). Так как активность была создана заново, переменным seconds и running возвращаются значения по умолчанию (running = false)
При изменении конфигурации устройства все компоненты
приложения, отображающие пользовательский интерфейс,
должны быть обновлены в соответствии с новой конфигурацией.
Если повернуть устройство, Android замечает, что ориентация
и размеры экрана изменились, и интерпретирует этот факт как
изменение конфигурации устройства. Текущая активность унич-
тожается и создается заново, чтобы приложение могло выбрать
ресурсы, соответствующие новой конфигурации


Поворот экрана1. Пользователь запускает приложение и щелкает на кнопке Start, чтобы секундомер заработал.2 Пользователь поворачивает устройство 3.

Слайд 9Поворот экрана
Активность выполняется, когда она находитсяна переднем плане на экране.


Метод onCreate() вызывается при создании активности; именно здесь происходит основная

настройка активности.
Метод onDestroy() вызывается непосредственно перед уничтожением активности
Поворот экранаАктивность выполняется, когда она находитсяна переднем плане на экране. Метод onCreate() вызывается при создании активности; именно

Слайд 10Поворот экрана

Поворот экрана

Слайд 11Поворот экрана (два подхода)
1. Запретить Android перезапуск активности при
изменениях в

конфигурации.
2 Сохранить текущее состояние, чтобы активность могла воссоздать
себя в том

же состоянии Недостаток первого подхода:
Игнорируется встроенное поведение Android, а это может создать проблемы
Возможно, самостоятельно обработать изменение конфигурации.
В файле AndroidManifest.xml: android:configChanges="изменение_конфигурации« android:name="com.hfad.stopwatch.StopwatchActivity"
android:label="@string/app_name"
android:configChanges="orientation|screenSize" >

public void onConfigurationChanged(Configuration config) {
}


Поворот экрана (два подхода)1. Запретить Android перезапуск активности приизменениях в конфигурации.2 Сохранить текущее состояние, чтобы активность могла

Слайд 12Поворот экрана (два подхода)
Второй подход Сохранение текущего состояния активности
и ее последующее

воссоздание в методе onCreate(). Чтобы сохранить текущее состояние аткивности, необходимо реализовать

метод onSaveInstanceState(). Метод onSaveInstanceState() вызывается перед уничтожением активности; это означает, что вам представится возможность сохранить все значения, которые нужно сохранить, прежде чем они будут безвозвратно потеряны. public void onSaveInstanceState(Bundle savedInstanceState) {
} Метод onCreate() получает параметр Bundle. Таким образом, если вы добавите значения переменных running и seconds в Bundle, метод onCreate() сможет восстановить их при повторном создании активности. bundle.put*("name", value) bundle.get*("name");

Поворот экрана (два подхода)Второй подход Сохранение текущего состояния активностии ее последующее воссоздание в методе onCreate(). Чтобы сохранить

Слайд 13Жизненный цикл активностей

Жизненный цикл активностей

Слайд 14Переопределение методов жизненного цикла
1. Реализовать метод onStop() активности, чтобы отсчет

времени останавливался, если приложение
стало невидимым
2. Реализовать метод onStart(), чтобы отсчет

времени возобновлялся, когда приложение становится видимым.
В переопределениях методов жизненного цикла активности должен вызываться метод суперкласса. Если этого не сделать, то произойдет исключение Изменить код активности так, чтобы если секундомер работал перед вызовом onStop(), он снова запускался после получения фокуса активностью
Переопределение методов жизненного цикла1. Реализовать метод onStop() активности, чтобы отсчет времени останавливался, если приложениестало невидимым2. Реализовать метод

Слайд 15Метод on Pause
Частичная видимость активности Активность находится в приостановленном состоянии, если

она
потеряла фокус, но остается видимой для пользователя. Такая
активность продолжает существовать

и сохраняет всю свою информацию состояния. Метод onPause() вызывается тогда, когда ваша активность видима, но фокус принадлежит другой активности. Метод onResume() вызывается непосредственно перед тем, как ваша активность начинает взаимодействовать с пользователем.
Метод on PauseЧастичная видимость активности Активность находится в приостановленном состоянии, если онапотеряла фокус, но остается видимой для

Слайд 16Метод on Pause
Частичная видимость активности Активность находится в приостановленном состоянии, если

она
потеряла фокус, но остается видимой для пользователя. Такая
активность продолжает существовать

и сохраняет всю свою информацию состояния. Метод onPause() вызывается тогда, когда ваша активность видима, но фокус принадлежит другой активности. Метод onResume() вызывается непосредственно перед тем, как ваша активность начинает взаимодействовать с пользователем.
Метод on PauseЧастичная видимость активности Активность находится в приостановленном состоянии, если онапотеряла фокус, но остается видимой для

Слайд 17Жизненный цикл активностей

Жизненный цикл активностей

Слайд 18Жизненный цикл активностей

Жизненный цикл активностей

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика