在Android集成腾讯云通信的时候遇到一个问题。在Activity中实现了腾讯云通信SDK里的TIMMessageListener类后通过onNewMessage方法接收云端的新消息。
但是,这个监听方法并不能在每个Activity里面实现。
1Activity里面实现了这个方法,并且在测试中接收到了新消息,但是跳转到2Activity之后再次实现了这个方法,并且在测试中也接收到了新消息,再返回到1Activity后就无法监听到新消息了,目测是因为在2Activity中这个方法被重新实现,所以之前实现的监听就报废了,当2Activity被销毁后,1Activity里面的监听无法恢复。
这是我碰到的问题。
我想问一下各位大神,该如何设计这个即时通讯功能。
比如说我需要在每个页面都监听新消息以便发送Notification,另外,需要给部分页面的图标增加角标,顺便在会话页面实现聊天过程。
本人刚刚入门,不是很了解整个流程,请大神指教。
Logik am IM:
Laksanakan
Service
untuk menerima mesej tolak (iaitu, daftarkanTIMMessageListener
SDK), dan kemudian panggilContext.sendOrderedBroadcast(Intent, String)
untuk menyiarkan mesej dengan teraturmelaksanakan
android:priority="-999"
daripadaBroadcastReceiver
dan mendaftarkannya dalam AndroidManifest.xml untuk menerima siaran yang dipesan yang dihantar olehService
dan menghantarnya ke bar status melaluiNotification
Memandangkan tahapnya sangat Rendah , oleh itu, ia akhirnya akan menerima siaran di atasDaftar
Activity
dalamFragment
/BroadcastReceiver
untuk menerima siaran yang dipesan di atas Memandangkan tahap lalaiBroadcastReceiver
ini lebih tinggi daripadaBroadcastReceiver
yang didaftarkan dalam 2, ia akan Siaran diterima. pertama, di sini kita boleh melakukan pemprosesan pemintasan (kod adalah seperti berikut): Selepas halaman perbualan dibuka, mesej baharu tidak akan diterima lagi melalui pemberitahuan bar status ApabilaActivity
/Fragment
ditutup, nyahdaftar perkara di atasBroadcastReceiver
, pada masa ini, pemberitahuan peringatan mesej baharu dalam bar status telah dipulihkan.Isi pengetahuan utama:
Siaran Tertib
Kebenaran peribadi
Buku rujukan:
Panduan Definitif untuk Pengaturcaraan Android Edisi Kedua Bab 27-Niat Siaran (Edisi pertama ialah Bab 30, versi Bahasa Inggeris adalah seperti berikut)
Pengaturcaraan Android: Panduan Ladang Nerd Besar
p.s. Responden bukan penyokong buku Responden telah membaca buku ini sepenuhnya topik ini adalah masalah utama, jadi saya mengesyorkan agar fail elektronik bahasa Inggeris boleh dimuat turun dari Internet.