
正文
android监听广播,android广播机制
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
求助 关于Android广播如何全局监听
这个是onCreate里面的代码
// 注册接收新消息的监听广播
msgReceiver = new NewMessageBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter(EMChatManager
.getInstance().getNewMessageBroadcastAction());
intentFilter.setPriority(3);
registerReceiver(msgReceiver, intentFilter);
下面是自己写的广播里的操作
private class NewMessageBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 注销广播
abortBroadcast();
// 消息id(每条消息都会生成唯一的一个id,目前是SDK生成)
String msgId = intent.getStringExtra("msgid");
EMMessage message = EMChatManager.getInstance().getMessage(msgId);
String news = ((TextMessageBody) message.getBody()).getMessage();
// 发送人id
String userId = intent.getStringExtra("from");
username = userId;
Info info = new Info();
info.setText(news);
info.setId(msgId);
info.setUserid(userId);
list.add(info);
}
}
相关问答
Q1: android监听wifi状态改变的广播靠谱吗
1、靠谱,这是android的基本常识!
2、只要wifi的底层驱动和wifi模块没有问题,广播消息不会被其他应用堵塞下,监听wifi状态,都会收到wifi状态改变的消息的!
Q2: Android 为什么无法监听到开机广播了?
如果你的项目需要监听到开机广播,以此实现开机自启等类似功能,你到网上搜索一下,基本上都是搜到以下实现方法。
亲测以上方法在我的一加5(Android 9)上是不管用的,其他博主给出的在第2步添加对SD卡加载完成等事件的广播监听方法,也是没有任何效果,一直不太明白网上大家都给出的一致方法,为啥就没效果了,难道是Android在后来的系统版本中,对这一块做了改动?直到前段时间看到了《Android开发艺术探索》中关于广播的发送和接受过程的一段讲解,终于解开了我的疑惑,原文摘抄如下:
通过上面这段话,我们可以知道,如果想让广播能够发送到未启动的应用,必须为广播的Intent添加FLAG_INCLUDE_STOPPED_PACKAGES标记,但是开机广播是系统发出的,我们无法修改。综上所述,自Android3.1之后,App开机自启无法实现。





