Android. Программирование для профессионалов. 4-е издание



Download 21,53 Mb.
Pdf ko'rish
bet56/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   52   53   54   55   56   57   58   59   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner


разделителем окон в середине экрана вниз, чтобы закрыть
нижнее окно. (Проведите разделителем вверх, чтобы закрыть
верхнее окно.)
Завершение activity
Нажмите на устройстве кнопку «Назад», а затем проверьте
вывод на панели 
LogCat
. Activity приложения получила вызовы
onPause()

onStop()
и 
onDestroy()
(рис. 3.13). Экземпляр
MainActivity
после этого уже не существует (он не находится
в памяти, не виден и, конечно, не находится на переднем
плане.)
Рис. 3.13. Нажатие кнопки «Назад» приводит к уничтожению activity
Нажимая кнопку «Назад», вы сообщаете Android: «Я
завершилработу с activity, и она мне больше не нужна». Android
уничтожает activity и удаляет все следы ее существования из


памяти, чтобы избежать неэффективного расходования
ограниченных ресурсов устройства.
То же самое можно сделать, смахнув приложение в сторону
из диспетчера задач. Вы можете также завершать activity
программно с помощью функции 
Activity.finish()
.
Поворот activity
А теперь вернемся к ошибке, обнаруженной в начале этой
главы. Запустите GeoQuiz, нажмите кнопку 
NEXT
для перехода
к следующему вопросу, а затем поверните устройство. (Чтобы
имитировать поворот в эмуляторе, нажмите на кнопки
поворота на панели инструментов.)
После поворота GeoQuiz снова выведет первый вопрос.
Чтобы понять, почему это произошло, просмотрите вывод
LogCat
. Он выглядит примерно так, как показано на рис. 3.14.
Рис. 3.14. MainActivity мертв. Да здравствует MainActivity!
Когда 
вы 
поворачиваете 
устройство, 
экземпляр
MainActivity
, который вы видели, уничтожается, и вместо
него создается новый экземпляр. Снова поверните устройство
— произойдет еще один цикл уничтожения и возрождения.
Из-за этого и возникает ошибка. Каждый раз, когда вы
поворачиваете 
устройство, 
экземпляр 
MainActivity
полностью 
уничтожается. 
Значение, 
хранившееся 
в
переменной 
currentIndex
этого экземпляра, стирается из
памяти. Таким образом, при повороте устройства приложение


GeoQuiz «забывает», какой вопрос вы смотрели, а после
завершения поворота Android создает новый экземпляр
MainActivity
с 
нуля. 
Переменная 
currentIndex
инициализируется с 
0
в вызове 
onCreate(Bundle?)
, а
пользователь начинает с первого вопроса.
В главе 4 мы исправим ошибку, но сначала подробнее
разберемся, почему это происходит.

Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   52   53   54   55   56   57   58   59   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish