如何避免RecyclerView ViewHolder中的内存泄漏?

时间:2019-04-27 10:12:11

标签: android android-recyclerview memory-leaks android-handler

我有一个带有ViewPager标头的RecyclerView。由于无法使ViewPager自动翻转视图,因此我在ViewHolder内添加了一个runnable来实现。因此,即使打开了另一个活动,并且无法停止它,该可运行程序仍会继续运行。可运行的唯一时刻是所有应用程序都关闭时。

就目前而言,我有一个可运行的设备,它会造成内存泄漏并一直运行,即使其他活动已打开也是如此。我已经检查了Logcat,看来可运行性不再仅在Activity被销毁后才运行。

handler.postDelayed(this, delay);

无法致电:

handler.removeCallbacks(runnable);

有没有一种方法可以停止可运行/其他任何方式来翻转ViewPager?

1 个答案:

答案 0 :(得分:0)

例如...

如果您在RecyclerView中使用ViewPager,则应创建

之类的方法
public static void stopHandler(){
   handler.removeCallbacks(runnable);
}

public static void resumeHandler(){
   handler.postDelayed(runnable,DELAY_MS);
}

并在onPause / onDestroy中调用stopHandler并在onResume方法中调用resumeHandler。