I have an adapter what uses the activity context to register and unregister a listener.
Activity mActivity;
MyBroadcastReceiver mReceiver;
@Override
public void onAttachedToRecyclerView (RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
mActivity.registerReceiver(mReceiver, ...);
}
@Override
public void onDetachedFromRecyclerView (RecyclerView recyclerView) {
super.onDetachedFromRecyclerView(recyclerView);
mActivity.unregisterReceiver(mReceiver);
mActivity = null;
}
Although the onAttachedToRecyclerView always gets called, the detach method never, so the adapter leaks a lot of memory even after closing the activity.(running is only noticeable in the Settings app)
What do I have to do?