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


Получение и обработка сообщений



Download 3,69 Mb.
Pdf ko'rish
bet66/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   62   63   64   65   66   67   68   69   ...   228
Bog'liq
Нативная разработка мобильных приложений

Получение и обработка сообщений
Давайте посмотрим, как зарегистрироваться для получения рассылаемых со
-
общений.


Android 

97
Прежде всего нужно создать экземпляр 
BroadcastReceiver
и переопределить 
метод 
onReceive
, добавив в него обработку сообщений:
Java
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("MyApp", "We received a broadcast for " + intent.getAction());
}
}
Kotlin
var receiver:BroadcastReceiver = object:BroadcastReceiver() {
override fun onReceive(context:Context, intent:Intent) {
Log.d("MyApp", "We received a broadcast for " + intent.getAction())
}
}
Затем следует создать экземпляр 
IntentFilter
, который в действительности 
просто хранит список строк с названиями действий, нас интересующих:
Java
IntentFilter intentFilter = new IntentFilter("data-received");
Kotlin
val intentFilter = IntentFilter("data­received")
IntentFilter
обладает более широкими возможностями, чем показано здесь, но 
чаще всего он используется как простой фильтр строк с названиями действий.
Созданный экземпляр 
intentFilter
нужно передать в вызов метода 
register­
Receiver
, после чего 
BroadcastReceiver
начнет получать рассылаемые сообщения 
с действием 
"data­received"
:
Java
LocalBroadcastManager.getInstance(context).registerReceiver(receiver,
intentFilter);
Kotlin
LocalBroadcastManager.getInstance(context).registerReceiver(receiver,
intentFilter)
Обратите внимание, что 
LocalBroadcastReceiver
является потокобезопасным, 
поэтому посылать сообщения с его помощью можно даже из фонового потока 
и безопасно их получать в потоке пользовательского интерфейса. Однако сама 
рассылка производится асинхронно, то есть операторы, следующие за вызо
-
вом 
sendBroadcast
, не обязательно будут выполнены после доставки сообщения 
получателям. Однако есть метод 
broadcastSync
, который гарантирует немедлен
-
ную доставку сообщений в синхронном стиле.
Также очень важно не забывать отменять регистрацию получателей 
Broad­
castReceiver
, например перед их удалением в методе 
finished
экземпляра 
Ac ti­
vi ty
. В противном случае возможны утечки памяти.


98

Передача сообщений
Существует также ряд сторонних систем обмена сообщениями, доступных 
в Java и Android, включая Otto от Square и EventBus от GreenRobot. Имеется так
-
же класс 
Observable
, используемый в очень популярной библиотеке RxJava для 
Android, но, как нам кажется, шаблон проектирования Наблюдатель довольно 
сильно отличается от традиционного шаблона Издатель/подписчик и поэтому 
заслуживает отдельного рассмотрения.
Наконец, без труда можно написать свою шину сообщений (систему отправ
-
ки и приема событий) на Java; например, мы реализовали такую шину, написав 
всего 40 строк кода.
iOS
Рассылать сообщения в iOS можно несколькими способами. Так же как в An
-
droid, самые распространенные из них – обратные вызовы и рассылка уведом
-
лений. Давайте рассмотрим их различия и определим, когда лучше использо
-
вать каждый из этих проверенных шаблонов.

Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   62   63   64   65   66   67   68   69   ...   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