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