0
  • android的View有一个规则,如果这个view已经添加到其他的ViewGroup里了,必须要脱离关系才可以加入到新的ViewGroup里.


    假设你有这么一个场景,你的这个mUiLoader没有销毁,然后又进了你当前Fragment的声明周期方法,这个UiLoader不是新创建的,之前已经添加到某个ViewGroup里了.如果你再添加的话则会报错.


    所以加了这个代码,用于防御.

    1153952789488054272  评论     打赏       拉大锯
    • I&F  回复 @拉大锯
      谢谢,懂了,那这个FrameLayout.removeAllView()是一样的吗?也是在创建的时候与之前的UILoader脱离关系? 还有一个问题给UILoader添加网络不加时的回调接口为什么没有提供注销的办法,那不会像ViewCallback一样造成内存泄漏吗?是因为Presenter里面是单例设计模式吗,因为setRetryClickListener也是传入了this
      I&F 2020-04-24 19:19   回复 1252047122883153920
    • 拉大锯  回复 @I&F
      那这个FrameLayout.removeAllView()是一样的吗?可以这么干,不推荐这么干。我都一年多没看代码了。你可以第一步实现功能,第二步再去优化。内存泄露的原因就是对象还被使用/引用着,gc无法回收。写代码的时候可以避免,或者后期去分析。
      拉大锯 2020-04-24 19:43   回复 1153952789488054272
    • I&F  回复 @拉大锯
      ok,可能我还没看到,谢谢回答
      I&F 2020-04-26 11:45   回复 1252047122883153920
相关问题
资质平平 · Android
2025-02-20 09:14 92 100
尖沙咀-段坤 · 项目
2025-01-06 23:39 18 2
雅澤yaduo · 领券联盟
2025-01-03 20:39 37 50
呆瓜小董 · webview
2024-11-30 18:02 68 20
阿肥 · 鸿蒙next
2024-10-25 18:07 35 100
尖沙咀-段坤 · 安卓
2024-09-11 11:03 31 2
YanLQ · AOSP
2024-08-10 11:57 35 100
断点 · vue
2024-08-08 10:05 79 30
幻影~ · 安卓 / 面试
2024-06-15 18:51 48 2