java - Android external Async Task with callback, do i need to dispose the callback? -
got small issue , advice on it.
this async task
public class dummytask extends asynctask<void, void, void> { private ondummytaskcomplete mondummytaskcomplete; public dummytask(ondummytaskcomplete listener) { mondummytaskcomplete = listener; } @override protected void doinbackground(void... params) { try { thread.sleep(10000); } catch (interruptedexception e) { e.printstacktrace(); } return null; } @override protected void onpostexecute(void avoid) { mondummytaskcomplete.ondummytaskcomplete(); } }
this callback
public interface ondummytaskcomplete { void ondummytaskcomplete(); }
this activity implements callback starts async task.
public class mainactivity extends actionbaractivity implements ondummytaskcomplete { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); dummytask dummytask = new dummytask(this); dummytask.execute(); }
do need dispose of callback avoid memory leak? following code required?
@override protected void onpostexecute(void avoid) { mondummytaskcomplete.ondummytaskcomplete(); mondummytaskcomplete = null; }
do need dispose of callback avoid memory leak?
no. shortly after onpostexecute()
run, asynctask
instance lose scope, along reference mondummytaskcomplete
. sure not reference mondummytaskcomplete
(or else may contain reference mainactivity
) within doinbackground
; otherwise, open context
leak. see this related issue details.
Comments
Post a Comment