BroadcastReceiver register and unregister not working in Android -
i use broadcastreceiver , register , works when press button , app show force close , in ondestroy() unregister it, have problem here code
@suppresslint("newapi") @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view v = inflater.inflate(r.layout.fragment_three, container, false); net = new networkreceiver(); mswiperefreshlayout = (swiperefreshlayout) v.findviewbyid(r.id.activity_main_swipe_refresh_layout); list = (listview) v.findviewbyid(r.id.list1); try { intentfilter filter = new intentfilter(); filter.addaction(action); //filter.addaction(action2); getactivity().registerreceiver(net, filter); } catch (nullpointerexception e){ log.d(tag, "" + e); }} @override public void ondestroy() { try { if (net!=null) { getactivity().unregisterreceiver(net); net = null; } } catch (illegalargumentexception e){ log.d(tag, "activityvideo - onstop unregisterreceiver:" + e); //localbroadcastmanager.getinstance() } super.ondestroy(); }
here error :
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: fatal exception: main 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: process: osclassapp.faosclass.com.osclassapp, pid: 13875 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: java.lang.nullpointerexception: attempt invoke virtual method 'android.content.intent android.support.v4.app.fragmentactivity.registerreceiver(android.content.broadcastreceiver, android.content.intentfilter)' on null object reference 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ osclassapp.faosclass.com.osclassapp.threefragment$postgetter$1.customloadmoredatafromapi(threefragment.java:483) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ osclassapp.faosclass.com.osclassapp.threefragment$postgetter$1.onloadmore(threefragment.java:475) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ osclassapp.faosclass.com.osclassapp.endlessscrolllistener.onscroll(endlessscrolllistener.java:59) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ android.widget.abslistview.invokeonitemscrolllistener(abslistview.java:1948) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ android.widget.abslistview.setonscrolllistener(abslistview.java:1937) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ osclassapp.faosclass.com.osclassapp.threefragment$postgetter.onpostexecute(threefragment.java:472) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ android.os.asynctask.finish(asynctask.java:636) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ android.os.asynctask.access$500(asynctask.java:177) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:653) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ android.os.handler.dispatchmessage(handler.java:102) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp e/androidruntime: @ android.os.looper.loop(looper.java:145) 07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp
this line problem , please hellp me
android.content.intentandroid.support.v4.app.fragmentactivity .registerreceiver(android.content.broadcastreceiver, android.content.intentfilter)' on null object reference
this because getactivity() returns null when invoke in oncreateview(). when fragment oncreateview invoked not necessary activity created.
you can move below piece of code onactivitycreated , issue resolved.
getactivity().registerreceiver(net, filter);
Comments
Post a Comment