我希望使用Firebase查询填充TabLayout
(来自设计库)。
我已经设置了一个(状态)寻呼机适配器,它可以动态地正确添加和删除页面(Firebase回调onChild{Added,Removed}()
)。
没有回收,但它确实有效。
使用setupWithViewPager()
将标签布局桥接到寻呼机适配器。当已填充不可变的寻呼机适配器时,此调用正常工作。
但是,当实时使用寻呼机适配器(Firebase查询)时,它不会将其修改传播到标签布局,除非每次拨打setupWithViewPager()
时都拨打notifyDataSetChanged()
。
因此我的问题是,多次调用setupWithViewPager会导致内存泄漏吗?
令人惊讶的是,无法撤消先前对setupWithViewPager()
的调用(setupWithViewPager(null)
不允许)。
感谢您的任何见解。
答案 0 :(得分:0)
您可以尝试onDestroy
或释放它的最佳时机,例如:
viewPager.clearOnPageChangeListeners()
然后它将不保存对setupWithViewPager
添加的侦听器的引用,因此您可以多次调用它而不会导致内存泄漏。
你怎么看?