Нативная разработка мобильных приложений



Download 3,69 Mb.
Pdf ko'rish
bet95/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   91   92   93   94   95   96   97   98   ...   228
Bog'liq
Нативная разработка мобильных приложений

з
адачи
В этой главе вы узнаете:
1) как запустить задачу в фоновом потоке выполнения;
2) как передать результаты выполнения задачи из фонового потока в глав
-
ный.
A
ndroid
В Java вычислительный контекст представляет экземпляр класса 
Thread
, кото
-
рый создается в точности, как вы могли бы ожидать:
Java
Thread thread = new Thread(...);
Kotlin
val thread = Thread(...)
В конструктор потока выполнения 
Thread
передается экземпляр 
Runnable

Пос ле запуска потока (вызовом метода 
start
) он вызывает метод 
run
получен
-


Android 

141
ного экземпляра 
Runnable
. И когда этот метод завершится (вернув управление 
или возбудив исключение), поток выполнения остановится.
Приложение для Android всегда имеет по меньшей мере один экземпляр 
Thread
, в котором по умолчанию выполняется вся работа, включая, в частности, 
обслуживание пользовательского интерфейса. Это важно – на самом деле этот 
поток иногда называют «потоком пользовательского интерфейса», но чаще 
«основным», или «главным», потоком. Со времени появления первой версии 
Android и до момента написания этой книги основной поток рисовал пиксели 
на экране 60 раз в секунду – примерно раз в 16 миллисекунд – и назывался 
«кад ром». Это чрезвычайно ресурсоемкий процесс, поэтому очень важно от
-
дать этому потоку как можно больше вычислительных ресурсов для выпол
-
нения данной работы. По этой причине тяжелые, с вычислительной точки 
зрения, задачи должны выполняться «вне» основного потока (то есть в любом 
другом потоке, который 
не
отвечает за пользовательский интерфейс, 
не
яв
-
ляется основным потоком программы и иногда называется «фоновым пото
-
ком»). Любые операции ввода/вывода, такие как доступ к файловой системе, 
транзакции в базе данных или продолжительные операции, например сетевые 
запросы, обязательно должны выполняться не из основного потока. Фактиче
-
ски вы увидите ошибки или предупреждения при попытке выполнить подоб
-
ные операции из основного потока. Кроме того, когда основной поток выпол
-
няет слишком много работы, пользовательский интерфейс будет обновляться 
«рывками». Например, 
RecyclerView
может прокручиваться скачками или экран 
будет зависать на некоторое время. Android Studio достаточно интеллектуаль
-
на, чтобы предупредить нас о подозрительных действиях; и вы часто будете 
видеть такие сообщения:
I/Choreographer(1234): Skipped 20 frames! The application may be doing too much
work on its main thread.
В данном случае сообщается, что система 
двадцать раз
пыталась перерисо
-
вать пользовательский интерфейс, но не смогла сделать это, потому что была 
лишена необходимых ресурсов.

Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   91   92   93   94   95   96   97   98   ...   228




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