首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从服务到活动的Android广播是怎样的?

从服务到活动的Android广播是怎样的?
EN

Stack Overflow用户
提问于 2018-04-08 12:19:26
回答 2查看 0关注 0票数 0

我正尝试将服务中的广播发送到活动。我可以验证广播是从服务内发送的,但活动不会收到任何内容。

以下是相关的服务代码:

代码语言:javascript
复制
   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);

活动类中的接收端:

代码语言:javascript
复制
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");
         }
   }
}

注册如下:

代码语言:javascript
复制
 registerReceiver(messageReceiver, new IntentFilter(IMService.NEW_MESSAGE));

其中“messageReceiver”被定义为 :

代码语言:javascript
复制
private newMessage messageReceiver = new newMessage();
EN

回答 2

Stack Overflow用户

发布于 2018-04-08 21:01:36

我不确定它是否特定于设置,或者它是否是一般性修复,但是移动register/unregisteronResume/onPause _respectively_而不是注册以onCreate解决问题。

票数 0
EN

Stack Overflow用户

发布于 2018-04-08 22:12:18

试试这两件事情:

  1. 使用清单文件注册接收器(但它几乎没有帮助)
  2. 试着让你的Receiver成为一个普通的班级,而不是内在的类。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档