[英]Android Broadcast from Service To Activity
我正在尝试从服务发送广播到活动。 我可以验证广播是从服务中发送的,但是活动不会发送任何内容。
这是相关的服务代码:
Intent i = new Intent(NEW_MESSAGE);
i.putExtra(FriendInfo.USERNAME, StringUtils.parseBareAddress(message.getFrom()));
i.putExtra(FriendInfo.MESSAGE, message.getBody());
i.putExtra("who", "1");
sendBroadcast(i);
并且活动类中的接收端:
public class newMessage extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(action.equalsIgnoreCase(IMService.NEW_MESSAGE)){
Bundle extra = intent.getExtras();
String username = extra.getString(FriendInfo.USERNAME);
String message = extra.getString(FriendInfo.MESSAGE);
String who = extra.getString("who");
}
}
}
BroadcastReceiver在Activity中定义。 我在Activity的onCreate方法中注册接收器,而不是在Manifest文件中。
我很难过为什么它不会记录。 任何东西。
任何见解?
编辑
注册如下:
registerReceiver(messageReceiver, new IntentFilter(IMService.NEW_MESSAGE));
其中“messageReceiver”定义为
private newMessage messageReceiver = new newMessage();
IMService.NEW_MESSAGE只是一个string =“NewMessage”
我不确定它是否特定于设置,或者它是否一般是修复,但是将register/unregister
移动到onResume/onPause
_respectively_
并且没有在onCreate
注册解决了我的问题。
试试这两件事:
内部类广播接收器将无法处理广播(意味着它无法定位该类)。 所以把它作为一个单独的类
绝对会起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.