2016-07-25 5 views
2

で動作していないを登録し、登録解除BroadcastReceiver、これはうまく動作しますが、戻るボタンを押し、onDestroyで私のアプリのショー力に近い、()私はそれの登録を解除するが、私はここでの問題 を持っているとき、私のコード私はBroadcastReceiver</strong><strong>を使用して登録アンドロイド

@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ください。 10
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

はい、私のアプリは、10のアイテムを受け取ったネットからデータを取得するためにlistviewを持っています。スクロールダウンして10個のアイテムを終了し、ページをインクリメントしてポストメソッドでPHPサーバーに送ります。ページ番号は、サーバーにログデータを送信し、PHPのサーバーにlogcatを表示するこの瞬間に、私は長い説明と基本的な質問のために申し訳ありませんが、残念ながら強制的に電話ボタンを押して、ページの追加番号を表示 –

0

活性は、したがって、そのNULLを出てまだ準備ができていません。 onActivityCreated()またはonStart()のような有効なアクティビティインスタンスを取得することが保証されているときに登録を試みます。

関連する問題