Softwaring
2015-04-21 01:27
采纳率: 66.7%
浏览 2.2k

线程中调用putExtras, activity调用getExtras返回空

详细描述如下:
在service类中新建一线程, 线程中写了如下代码:

intent = new Intent (getBaseContext (), MeiaAlarmDetail.class); 
Bundle bundle = new Bundle();  
bundle.putString("DevID", alarm_info.DevID);
intent.putExtras (bundle);

但是在MeiaAlarmDetail.class这个类中, 去调用getExtras, 返回值却是null。

如果把以上代码放到onStartCommand中, 是可以获取到Bundle的。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 清水依恋成 2015-04-21 01:45
    已采纳

    首先,确认一下你接收广播intent = new Intent这块是不是和发送端发送广播时的action配对,我没看到你intent的action配对代码,即intent.setAction。

    如果你想使用bundle传递对象,对象bean必须实现java.io.Serialable接口。

    另外需要告诉你额是,bundle承载的数据最好总大小不要超过256K,否则会有丢包的现象发生。

    点赞 打赏 评论
  • Joshua_zhanglz 2015-04-21 05:43

    很有可能是 线程没有将数据存进去,你就取数据了,梳理下逻辑看看是不是~

    点赞 打赏 评论
  • Softwaring 2015-04-21 06:13

    其实是我想从通知栏传数据到Activity。 加上这句就ok了。 PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 再次感谢您的回答。

    点赞 打赏 评论

相关推荐 更多相似问题