kilinwei

Results 4 comments of kilinwei

同意

> ![image](https://user-images.githubusercontent.com/14955364/62758597-72d43b80-bab1-11e9-970e-3cbe0c49a101.png) > > 关于你的这种场景我也有 也是通过发送eventbus来启动登录界面 但我的不会有残影 我的启动方式这样的 加了启动模式SINGLETASK, 同时判断栈顶是否已经存在 如果存在就不启动 你可以参考下 看下能否解决你的问题 @JunFreeman 我遇到了楼主同样的问题,使用了和你相同的处理方式,先判断在不在栈顶,同时使用singleTalk的方式启动,但是还是会出现,只是概率没这么高了

![微信截图_20190929170028](https://user-images.githubusercontent.com/19816394/65829743-06b8cb80-e2db-11e9-969d-18aeb40d0b87.png) 上面的图为我写的一个demo,用于复现问题的,很简单,进入activity之后默认加载FirstFragment,然后点击button3,开启一个线程,模拟快速点击botton2,一般点击第二次button3之后,就会复现问题, 如下图,背景图小机器人是activity的背景,两个Fragment的背景全部为透明; 同时在布局分析器中,也看不到盖在上面的SecondFragment(第二个Fragment)的内容,只看到FirstFragment(第一个Fragment)的内容,按照预期,应该只能看到第一个Fragment的内容,但是现在看到了两个 ![微信截图_20190929165748](https://user-images.githubusercontent.com/19816394/65829784-847cd700-e2db-11e9-9151-109ad84e1a08.png) 另外,在分析内存的时候,发现存在多个SecondFragment的实例,发生了内存泄漏 ![微信截图_20190929171332](https://user-images.githubusercontent.com/19816394/65829933-2d780180-e2dd-11e9-834b-385ce0aba4c8.png)

https://github.com/YoKeyword/Fragmentation/issues/897#issue-330106725 这个issue里给出了两个解决办法,第二个对我没有效果,我把第二个的代码修改了一下,就ok了 // 当前方法执行在MainThread,所以立即执行移除视图 if (animation.getDuration() == 0) { try { mock.removeViewInLayout(fromView); container.removeView(mock); } catch (Exception ignored) { } return; } if (from.isDetached()) { try { Log.w(TAG, "mockPopToAnim: from.isDetached() =...