Android集成腾讯云通信关于全局消息监听的实现
伊谢尔伦
伊谢尔伦 2017-04-18 09:16:06
0
1
602

在Android集成腾讯云通信的时候遇到一个问题。在Activity中实现了腾讯云通信SDK里的TIMMessageListener类后通过onNewMessage方法接收云端的新消息。
但是,这个监听方法并不能在每个Activity里面实现。
1Activity里面实现了这个方法,并且在测试中接收到了新消息,但是跳转到2Activity之后再次实现了这个方法,并且在测试中也接收到了新消息,再返回到1Activity后就无法监听到新消息了,目测是因为在2Activity中这个方法被重新实现,所以之前实现的监听就报废了,当2Activity被销毁后,1Activity里面的监听无法恢复。
这是我碰到的问题。
我想问一下各位大神,该如何设计这个即时通讯功能。
比如说我需要在每个页面都监听新消息以便发送Notification,另外,需要给部分页面的图标增加角标,顺便在会话页面实现聊天过程。
本人刚刚入门,不是很了解整个流程,请大神指教。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(1)
刘奇

IM의 일반적인 논리:

  1. 푸시 메시지 수신을 위해 Service을 구현(즉, SDK의 TIMMessageListener 등록)한 후 Context.sendOrderedBroadcast(Intent, String)을 호출하여 메시지를 순서대로 방송

  2. android:priority="-999"BroadcastReceiver을 구현하여 AndroidManifest.xml에 등록하여 Service에서 보낸 주문된 브로드캐스트를 수신하고 Notification을 통해 상태 표시줄에 보냅니다. , 따라서 드디어 위의 방송을 받게 됩니다

  3. 위에서 주문한 방송을 받으려면 Activity/FragmentBroadcastReceiver을 등록하세요. 이 BroadcastReceiver의 기본 레벨이 2에서 등록한 BroadcastReceiver보다 높기 때문에 방송이 수신됩니다. 먼저 여기서 차단 처리를 할 수 있습니다(코드는 다음과 같습니다): 대화 페이지가 열린 후에는 더 이상 상태 표시줄 알림을 통해 새 메시지가 수신되지 않습니다. Activity/Fragment이 닫히면 위의 등록을 취소합니다. BroadcastReceiver 이때 상태 표시줄의 새 메시지 알림이 복원되었습니다.

으아악

주요 지식 포인트:

  1. 순차방송

  2. 개인 권한

참고 도서:

  • 안드로이드 프로그래밍 결정판 2판 27장 - 방송 의도 (초판은 30장, 영문판은 아래와 같습니다)

  • Android 프로그래밍: Big Nerd Ranch 가이드

p.s. 피청구인은 이 책을 완전히 읽었습니다. 책에 있는 지식 내용은 기본적으로 공식 문서가 포함된 중국 서적과 동일합니다. 이는 큰 문제이므로 인터넷에서 영문 전자파일을 다운로드 받는 것을 권장합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿