Activity向Fragment传值出现的问题

作为一个Bug收集器,今日的我又遇到了一个头疼的问题。

在Activity中向Fragment中传递数据,(之所以不在Fagment中取数据,是因为项目的特殊要求,所以无法实现,所以你在Fragment中取数据则不会有这个头疼的问题了),在我的手机上运行,完美;add,commit,关机,下班一气呵成,一觉醒来,看到线上的崩溃,我也崩溃了。

报了一堆的空指针,根据报错信息查看报错位置,发现Fragment中getArguments返回的Bundle中Map为空,导致之后从Bundle中get数据报了空指针,仔细想想,不应该啊,数据都是从Activity中传入的,难道是Activity出了问题,推测是因为Activity不可见状态下,被系统回收了,导致Fragment也被回收了,然后再次回到这个界面,Fragment加载数据,但是内存中的数据被清掉了,导致为空。

打开开发者模式中的不保留活动,一试,果然当Activity不可见时,在回到那个Activity,必崩。

既然你Activity保存不好数据,那就不让你保存了,索性直接屏蔽掉onSaveInstanceState()中的super方法,编译器爆红,不管,加上@SuppressLint("MissingSuperCall")

@Override

标注,运行,完美解决,不过感觉这个方法不是特别好,如果有更好的方法,欢迎在评论中提出。

PS:一般还是在Fragment中获取数据为好,我这里是不得不才会遇到这个问题。

你可能感兴趣的:(Activity向Fragment传值出现的问题)