可以多次调用setupWithViewPager导致内存泄漏吗?

时间:2015-06-14 19:46:31

标签: android-design-library

我希望使用Firebase查询填充TabLayout(来自设计库)。

我已经设置了一个(状态)寻呼机适配器,它可以动态地正确添加和删除页面(Firebase回调onChild{Added,Removed}())。 没有回收,但它确实有效。

使用setupWithViewPager()将标签布局桥接到寻呼机适配器。当已填充不可变的寻呼机适配器时,此调用正常工作。

但是,当实时使用寻呼机适配器(Firebase查询)时,它不会将其修改传播到标签布局,除非每次拨打setupWithViewPager()时都拨打notifyDataSetChanged()

因此我的问题是,多次调用setupWithViewPager会导致内存泄漏吗?

令人惊讶的是,无法撤消先前对setupWithViewPager()的调用(setupWithViewPager(null)不允许)。

感谢您的任何见解。

1 个答案:

答案 0 :(得分:0)

您可以尝试onDestroy或释放它的最佳时机,例如:

viewPager.clearOnPageChangeListeners()

然后它将不保存对setupWithViewPager添加的侦听器的引用,因此您可以多次调用它而不会导致内存泄漏。

你怎么看?