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

问题描述 投票:-1回答:1

我有一个带有ViewPager标题的RecyclerView。由于无法自动生成ViewPager翻转视图,因此我在ViewHolder中添加了一个runnable来执行此操作。因此,即使另一个Activity处于打开状态且无法阻止它,runnable仍会继续运行。所有应用程序关闭时runnable的唯一时刻。

现在,我有一个runnable,它会创建一个内存泄漏并且即使在其他活动打开时也会一直运行。我已经检查过Logcat,似乎只有在Activity被销毁后,runnable才会运行。

handler.postDelayed(this, delay);

无法打电话:

handler.removeCallbacks(runnable);

有没有办法阻止runnable /任何其他方式来翻转ViewPager?

android android-recyclerview memory-leaks android-handler
1个回答
0
投票

所以例如......

如果您在RecyclerView中使用ViewPager,那么您应该创建类似的方法

public static void stopHandler(){
   handler.removeCallbacks(runnable);
}

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

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

© www.soinside.com 2019 - 2024. All rights reserved.