java - Adapter leaks memory? -


i have adapter uses activity context register , unregister 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 onattachedtorecyclerview gets called, detach method never, adapter leaks lot of memory after closing activity.(running noticeable in settings app)

what have do?

to safe, register receiver in activity. shouldn't hold on activity reference anywhere really...

if want register receiver adapter use interface.

public interface registerer {     void register();     void unregister(); } 

in activity:

mrecyclerview.setadapter(new recycleradapter(somedataset,  new registerer() {     public void register() {         registerreceiver(mreceiver, ...);     }     public void unregister() {         unregisterreceiver(mreceiver);     } }); 

then can call interface methods adapter. don't see point of cramming view adapter though.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

android - Keyboard hides my half of edit-text and button below it even in scroll view -