kilinwei
kilinwei
同意
>  > > 关于你的这种场景我也有 也是通过发送eventbus来启动登录界面 但我的不会有残影 我的启动方式这样的 加了启动模式SINGLETASK, 同时判断栈顶是否已经存在 如果存在就不启动 你可以参考下 看下能否解决你的问题 @JunFreeman 我遇到了楼主同样的问题,使用了和你相同的处理方式,先判断在不在栈顶,同时使用singleTalk的方式启动,但是还是会出现,只是概率没这么高了
 上面的图为我写的一个demo,用于复现问题的,很简单,进入activity之后默认加载FirstFragment,然后点击button3,开启一个线程,模拟快速点击botton2,一般点击第二次button3之后,就会复现问题, 如下图,背景图小机器人是activity的背景,两个Fragment的背景全部为透明; 同时在布局分析器中,也看不到盖在上面的SecondFragment(第二个Fragment)的内容,只看到FirstFragment(第一个Fragment)的内容,按照预期,应该只能看到第一个Fragment的内容,但是现在看到了两个  另外,在分析内存的时候,发现存在多个SecondFragment的实例,发生了内存泄漏 
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() =...