我正在构建一个简单的聊天应用程序。当我收到一条消息时,我发送了一条广播消息。
由于这是在服务启动的线程内运行的,因此我将上下文传递给线程。MyConnection
是一个类扩展线程。
@Override
public void onCreate() {
super.onCreate();
connection = new MyConnection(getApplicationContext());
}
因此,当我收到消息时,在线程内,我会这样做......
Intent i = new Intent();
i.putExtra("from", message.getFrom());
i.putExtra("message", message.getBody());
i.setAction(MyService.MESSAGE_RECEIVED);
_context.sendBroadcast(i);
_context
是getApplicationContext()
我传递给线程的构造函数。我已receiver
在我的清单文件中注册。
所以这一切正常,我的接收者成功接收到消息。
现在我想更改它以使用LocalBroadcastManager
. 所以我所做的只是_context.sendBroadcast(i)
将
LocalBroadcastManager.getInstance(_context).sendBroadcast(i);
但是我BroadcastReceiver
没有收到任何以这种方式发送的广播。
我究竟做错了什么?我是否需要在 Manifest 中以不同的方式注册接收器才能接收本地广播?是否需要任何其他步骤才能使其工作?