华为EMUI4.0 基于android 6.0的bug
2016-03-04 19:25
555 查看
今天在做一个闹钟方面的测试时候,在模拟器上总是能测试成功,但是在坑爹的华为手机上不知为何总是失败。
代码如下:
大致就是设定一个时间间隔然后启动一个BroadCastReceiver,并且同时传输一个对象
这是Recevier中的代码.在android6.0的Genymotion模拟器中测试没有什么问题,但是不知道为什么在华为EMUI4.0 上总是出错,调试发现传输到Receiver中的数据对象alarmData为null,真是奇了怪了。
后来测试传输简单数据类型是可以的。
代码如下:
fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MainActivity.this,Receiver.class); intent.putExtra("name",new AlarmData(100)); PendingIntent i=PendingIntent.getBroadcast(MainActivity.this,1,intent,PendingIntent.FLAG_UPDATE_CURRENT); manager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+Integer.parseInt(et.getText().toString()),i); } });
大致就是设定一个时间间隔然后启动一个BroadCastReceiver,并且同时传输一个对象
public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { AlarmData alarmData = (AlarmData) intent.getParcelableExtra("name"); Intent i = new Intent(context, SecondActivity.class); Toast.makeText(context, alarmData.getId(), Toast.LENGTH_LONG).show(); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } }
这是Recevier中的代码.在android6.0的Genymotion模拟器中测试没有什么问题,但是不知道为什么在华为EMUI4.0 上总是出错,调试发现传输到Receiver中的数据对象alarmData为null,真是奇了怪了。
后来测试传输简单数据类型是可以的。
相关文章推荐
- BlockingQueue
- Android源码浅析: Message/Handler/MessageQueue/Looper
- PAT (Advanced Level) Practise 1017 Queueing at Bank (25)
- [hdu4010]: Query on The Trees
- SPOJ QTREE Query on a tree [树链剖分+线段树]
- NSOperationQueue与GCD的使用原则和场景
- Android自动化测试(UiAutomator)介绍与学习
- UGUI源码学习之初涉Button(三)
- UIBezierPath精讲
- 消息队列ActiveMQ(一)——Queue方式和Topic方式
- require 加载机制
- UGUI源码学习之初涉Text(二)
- UITableView的全选和多选功能
- EasyUI Combobox 二级联动
- HBuilder实现软件自动升级
- 利用UIWindow自定义类似UIAlertView的弹出框
- HBase requestsPerSecond到底是什么?
- UISegmentedControl 改变选中颜色
- 使用Homebrew管理你的mac开发包( Press RETURN to continue or any other key to abort)
- UITableView 总结