2

チャットアプリケーションで作業しています。

onPause() と onResume() でレシーバーを登録しました。

レシーバーでネットワーク接続をチェックしているため、onPause() でレシーバーの登録を解除できません

onPause と onResume では、ネットワークを監視する必要があります

次に、受信者の登録をどこで解除するかについて混乱していますか?

誰でも私を助けてください。

protected void onPause(){
        backfacekey=1;


        //unregisterReceiver(mConnReceiver); 
        super.onPause();
        registerReceiver(mFacebookReceiver, 
                  new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
    }


    protected void onResume(){

        backfacekey=0;
        super.onResume();

        registerReceiver(mFacebookReceiver, 
                 new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

    }



    private BroadcastReceiver mFacebookReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {



                 NetworkInfo info = (NetworkInfo)intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); 


                 if (info.getState().equals(NetworkInfo.State.DISCONNECTED)) {
                  Toast.makeText(getApplicationContext(), "Network disconnected",Toast.LENGTH_LONG).show();

                 }
                  key=2;

                 }

                   if (info.getState().equals(NetworkInfo.State.CONNECTED)) {

                     if(key==2){



                                Toast.makeText(getApplicationContext(), "Network connected ",Toast.LENGTH_LONG).show(); 
                key=0;

                        }
                     }
                    };
4

1 に答える 1

1

onStop()またはonDestroy()メソッドで受信者の登録を解除できます。

于 2012-10-25T11:37:32.800 に答える