今天写代码时发现杀掉activityA@1后再启动activityA@2时,因为activityA@2的ImmersionBar先初始化了,之后activityA@1的OnDestroy才执行,而关键点是发现OnDestroy中确实是需要杀掉的activityA@1,而ImmersionBar也不是单例,所以最后查看源码发现这么一段:
if (mMap.get(mActivityName) == null)throw new IllegalArgumentException("在Fragment里使用时,请先在加载Fragment的Activity里初始化!!!");
而mMap的key是activity的名字,所以这就导致了后续的错误、
在Fragment里使用时,请先在加载Fragment的Activity里初始化!!!
本文探讨了在Activity销毁后重新启动时遇到的问题,即ImmersionBar在Fragment中的不恰当初始化导致的错误,并深入分析了其源码,提供了解决方案。

2153

被折叠的 条评论
为什么被折叠?



