问题描述
- 线程中调用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的。
解决方案
首先,确认一下你接收广播intent = new Intent这块是不是和发送端发送广播时的action配对,我没看到你intent的action配对代码,即intent.setAction。
如果你想使用bundle传递对象,对象bean必须实现java.io.Serialable接口。
另外需要告诉你额是,bundle承载的数据最好总大小不要超过256K,否则会有丢包的现象发生。
解决方案二:
很有可能是 线程没有将数据存进去,你就取数据了,梳理下逻辑看看是不是~
解决方案三:
很有可能是 线程没有将数据存进去,你就取数据了,梳理下逻辑看看是不是~
解决方案四:
其实是我想从通知栏传数据到Activity。 加上这句就ok了。 PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 再次感谢您的回答。
解决方案五:
其实是我想从通知栏传数据到Activity。 加上这句就ok了。 PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 再次感谢您的回答。
时间: 2024-12-09 21:48:43