欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

重新跳转到Activity,其中的fragment显示空白

程序员文章站 2022-06-04 16:39:44
...
崩溃, 我的Activity中fragment都显示空白. 在我的项目中有一个接受推送消息, 消息到来时, 打开Activity, 展示对应信息. 而打开activity之后,发现fragment都显示空白.  找了很久原因, 也在网上看看了好多解决办法, 但是好像都不是我这种现象.

然后, 我只能自己冷静下来好好梳理这个跳转逻辑, 终于找到了问题原因.  因为的activity中的fragment是通过我创建的fragmentfactory类来提供的,而这个fragmentfactory类中管理了一个fragment集合, 每次提供fragment的时候先看集合中有没有, 如果有就从集合中拿取返回. 而我在重新打开activity的时候, 其实是相当于创建了一个新的activity, 不再是之前的那个activity了, 而fragment还是保存在fragmentfactory中, fragment中保存的依附activity还是原来的那个activity, 让其在新创建的activity上显示是显示不出来的, 所以显示的是空白.

所以,要保证fragment能正常显示,就要保证其依附的activity不改变, 我的解决办法是在清单文件中将activity的launchmode设置为singleTop. 当然,如果fragment不做存储,每次都重新创建新的fragment也不会出现这样的问题.