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


Для любознательных: обновление UI и мультиоконный



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

Для любознательных: обновление UI и мультиоконный
режим
До версии Android 7.0 Nougat большинство activity очень мало
времени проводило в приостановленном состоянии. Это
состояние было лишь промежуточным между состоянием
выполнения и остановки. Из-за этого многие разработчики
предполагали, что обновлять интерфейс нужно только тогда,
когда activity находится в возобновленном состоянии. Обычной
практикой было использование функций 
onResume()
и
onPause()
для запуска или остановки любых текущих
обновлений, связанных с пользовательским интерфейсом
(таких как анимация или обновление данных).
Когда в версии Nougat был введен многооконный режим, это
нарушило принцип, гласящий, что на экране видна только
выполняемая activity. А это, в свою очередь, сломало
предполагаемое поведение многих приложений. Теперь, когда
пользователь 
находится 
в 
многооконном 
режиме,
приостановленные activity могут быть полностью видны в
течение 
длительного 
периода 
времени. 
Разумеется,
пользователь ожидает, что эти приостановленные activity будут
вести себя так, как если бы они выполнялись.
Простой пример — видео. Предположим, у вас есть
приложение 
pre-Nougat, 
предназначенное 
для


воспроизведения видео. Вы запускаете (или возобновляете)
воспроизведение 
видео 
в 
функции 
onResume()
и
приостанавливаете в 
onPause()
. И вот появляется
многооконный режим, но ваше приложение останавливает
воспроизведение при переключении пользователя на
приложение во втором окне. Пользователи недовольны, ведь
они хотят смотреть видео, пока пишут сообщение в отдельном
окне.
К счастью, исправить это просто: нужно переместить ваше
возобновление воспроизведения и паузу в функции 
onStart()
и 
onStop()
. Это относится к любым данным, обновляемым в
реальном времени, например фотогалереям, которые
прокручивают фотографии, когда они попадают в поток Flickr
(как вы увидите позже в этой книге).
С момента появления Nougat ваша activity должна обновлять
пользовательский интерфейс на протяжении всего видимого
жизненного цикла, от 
onStart()
до 
onStop()
.
К сожалению, не все усвоили этот урок, и многие
приложения до сих пор некорректно работают в многооконном
режиме. Чтобы исправить это, команда разработчиков Android
в ноябре 2018 года представила спецификацию для поддержки
мультивозобновления в многооконном режиме. Этот режим
означает, что полностью видимая activity в каждом из окон
будет находиться в состоянии выполнения, когда устройство
находится в многооконном режиме, независимо от того, с
каким из окон пользователь взаимодействует в данный момент.
Вы можете использовать многооконный режим для своего
приложения, когда оно работает на Android 9.0 Pie, добавив
метаданные 
в 
манифест 
Android: 
dataandroid:name="android.allow_multiple_resumed_a
ctivities"android:value="true"/>
. Вы узнаете об этом
больше в главе 6.


Стоит отметить, что мультивозобновление будет работать
только на тех устройствах, производитель которых реализовал
соответствующую спецификацию. И на момент написания этой
статьи ни одно устройство на рынке так не умеет. Однако ходят
слухи, что спецификация станет обязательной в следующей
версии Android Q.
Пока мультивозобновление не станет легкодоступным
стандартом для большинства устройств на рынке, вам придется
использовать ваши знания о жизненном цикле activity, чтобы
понимать, где разместить код обновления пользовательского
интерфейса. По мере изучения этой книги мы будем много
практиковаться в этом.

Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   56   57   58   59   60   61   62   63   ...   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