2016-07-25 192 views
2

工作,我用广播接收器和注册,这个工作得很好,但是当按下返回键,我的应用程序展示部队密切,在的onDestroy()我注销了,但我有问题 这里是我的代码广播接收器注册和注销未在Android的

@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(); 
} 

这是我的错误:

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 to invoke virtual method 'android.content.Intent android.support.v4.app.FragmentActivity.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)' on a null object reference 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at 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:  at 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:  at osclassapp.faosclass.com.osclassapp.EndlessScrollListener.onScroll(EndlessScrollListener.java:59) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at android.widget.AbsListView.invokeOnItemScrollListener(AbsListView.java:1948) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at android.widget.AbsListView.setOnScrollListener(AbsListView.java:1937) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at osclassapp.faosclass.com.osclassapp.ThreeFragment$PostGetter.onPostExecute(ThreeFragment.java:472) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at android.os.AsyncTask.finish(AsyncTask.java:636) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at android.os.AsyncTask.access$500(AsyncTask.java:177) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:102) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:145) 
07-25 21:57:46.722 13875-13875/osclassapp.faosclass.com.osclassapp 

这行是我的问题,请HELLP我

android.content.Intentandroid.support.v4.app.FragmentActivity 
.registerReceiver(android.content.BroadcastReceiver, 
android.content.IntentFilter)' 
on a null object reference 

回答

1

这是因为getActivity()在onCreateView()中调用它时返回null。当您的片段onCreateView被调用时,没有必要创建活动。

您可以将下面的代码移动到onActivityCreated并且您的问题将被解决,您的问题将被 解决。

getActivity().registerReceiver(net, filter); 
+0

先生,不幸的是没有解决 –

+0

你重写onActivityCreated并将其移动registerReceiver里面吗? –

+0

是的,我的应用程序有listview,从10个项目收到的数据,从网上获得的数据,完成10个项目后,增加页面和发送页面编号到php服务器通过post方法,它运作良好,但是当完成从php收到的项目,页码要继续向服务器发送数据并在php服务器中显示logcat的额外页数,此时,按下手机后退按钮,显示不可用力关闭,对不起,长解释和基本问题 –

0

活动是没有准备,因此其出山空。尝试注册,当你保证得到一个有效的活动实例如onActivityCreated()onStart()

相关问题