RVDelegate内存泄漏问题解决

This commit is contained in:
huangjian
2023-01-10 14:49:24 +08:00
parent e37af6c9a1
commit 3427999e29
3 changed files with 15 additions and 9 deletions

View File

@@ -35,7 +35,6 @@ class DecorationCommonFragment : BaseViewBindingFragment<FragmentDecorationCommo
private val dressType: Int by lazy { requireArguments().getInt("dressType") }
private lateinit var rvDelegate: RVDelegate<DecorationInfo>
private lateinit var decorationAdapter: DecorationCommonAdapter
private val decorationViewModel: DecorationViewModel by viewModels()
override fun init() {
@@ -44,7 +43,7 @@ class DecorationCommonFragment : BaseViewBindingFragment<FragmentDecorationCommo
if (it) dialogManager.showProgressDialog(mContext)
else dialogManager.dismissDialog()
}
decorationAdapter = if (dressType == DecorationStoreActivity.TAB_USER_CARD) {
val decorationAdapter = if (dressType == DecorationStoreActivity.TAB_USER_CARD) {
DecorationCommonAdapter(R.layout.item_decoration_user_card)
} else {
DecorationCommonAdapter()
@@ -101,9 +100,10 @@ class DecorationCommonFragment : BaseViewBindingFragment<FragmentDecorationCommo
}
override fun onDestroy() {
super.onDestroy()
override fun onDestroyView() {
super.onDestroyView()
EventBus.getDefault().removeStickyEvent(DecorationInfoEvent::class.java)
rvDelegate.onDestroyView()
}
}

View File

@@ -31,7 +31,6 @@ class RoomSingleFragment : BaseViewBindingFragment<FragmentRoomSingleBinding>()
}
}
private lateinit var adapter: MoreSingleAnchorAdapter
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
private val pageSize = Int.MAX_VALUE
@@ -42,9 +41,8 @@ class RoomSingleFragment : BaseViewBindingFragment<FragmentRoomSingleBinding>()
private val id: Long? by lazy { requireArguments().getLong("id") }
override fun init() {
adapter = MoreSingleAnchorAdapter()
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
.setAdapter(adapter)
.setAdapter(MoreSingleAnchorAdapter())
.setRecyclerView(binding.recyclerView)
.setRefreshLayout(binding.refreshLayout)
.setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间"))
@@ -74,9 +72,10 @@ class RoomSingleFragment : BaseViewBindingFragment<FragmentRoomSingleBinding>()
EventBus.getDefault().register(this)
}
override fun onDestroy() {
super.onDestroy()
override fun onDestroyView() {
super.onDestroyView()
EventBus.getDefault().unregister(this)
rvDelegate.onDestroyView()
}
@Subscribe(threadMode = ThreadMode.MAIN)

View File

@@ -125,6 +125,13 @@ public class RVDelegate<T> {
}
}
public void onDestroyView(){
recyclerView = null;
refreshLayout = null;
emptyView = null;
adapter = null;
dataStatus = null;
}
public static class Builder<T> {
private BaseQuickAdapter<T, ? extends BaseViewHolder> adapter;