Android Intent获取不到值

来源:互联网 发布:mac和nars口红哪个便宜 编辑:程序博客网 时间:2024/05/16 06:32

今天遇到了一个奇葩的情况,明明已经putExtra,并且debug时,intent确实是有值的,但是跳转到B Activity后通过getIntent(),getStringExtra()竟然没有值.百思不得解.



这个是B  Activity中,获取不到pages的值,debug显示为null



同样实在B Activity界面中,我却能收到在A Activity中put的bean对象



今天真实见鬼了...而且并没有任何报错...这里的代码我并没有修改,在git历史记录都是一模一样的,在我开始要怀疑人生的时候,我突然想起来,我虽然没有改这里的代码但是我却修改了在A界面put的实体类bean的某些字段?难道和这个有关系?



我报着试试看的态度,我把A Activity中put的Bean去掉,竟然在B Activity中收到了我put的String 值"detail".我猜想原因是因为这个对象是 implement Parcelable 的,这个parcelable是把对象序列化到内存当中,intent会对这个bean进行读写操作,在这个过程中出错了,于是我之前存的那些字段都没有了.我还有个疑问不能理解的是,有时候可以在B Activity中 获取到这个错误的bean,大部分是不能 的.而且不报错,后来我把这个Bean修了后,好像是没有改彻底,这次终于给我报了一个错:

 Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: 
         at android.os.Parcel.readParcelableCreator(Parcel.java:2105)
         at android.os.Parcel.readParcelable(Parcel.java:2055)
         at com.mclm.business_special.network.entity.response.dph.SelfProductsListResponse$DataListBean$CategoryBean.<init>(SelfProductsListResponse.java:313)

这下,终于给我报错了,我才心安,我知道是bean没有修改彻底,于是我又重新写了一遍这个bean,然后这个世界又光明了,我又开始热爱生活了!!

       



0 0