0

私はAndroid用のタブバーアプリケーションに取り組んでおり、ステータスについてユーザーを更新する必要があり、アプリ全体をに登録し、ネットワークステータスに関するすべての画面にBroadcastReceiver表示したいと考えています.Toast

以下のコードを思いつきましたが、それは 1 つのみActivityです。onResumeすべてのアクティビティで行ったのと同じ方法で登録していますcurrentNetworkInfoが、2 番目のタブで null ポインターを取得しています。これを解決する方法はありますか?

this.registerReceiver(this.mConnReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
            String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
            boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);

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

            if (currentNetworkInfo.isConnected()) {
                Toast.makeText(getApplicationContext(), "Network connected", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(), "No Network connection", Toast.LENGTH_LONG).show();
            }
        }
    };
4

0 に答える 0