Это мой первый раз, когда вы используете широковещательные приемники, и я думал, что это будет немного более прямолинейно, чем это. У меня есть класс, глядя, как это:Использование Broadcastreceiver для изменения состояния сети
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isConnected = wifi != null && wifi.isConnectedOrConnecting() || mobile != null && mobile.isConnectedOrConnecting();
if (isConnected) {
Log.d("Network Available ", "YES" + getResultCode());
}else{
Log.d("Network Available ", "NO" + getResultCode());
}
}
}
и я уже зарегистрировал его в моем приложении, как этот
mReceiver = new NetworkChangeReceiver();
registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
И это работает нормально, когда я отключить мой Wi-Fi, я получаю «НЕТ "в log.d .. Но как мне получить что-то" случиться "? Я хочу получить возвращаемое значение или что-то, с чем я могу работать, например if isConnected is false, а затем перезапустить активность или что-то еще. Я искал поисковые запросы в течение нескольких дней, пытаясь понять, что это такое и как они работают ... Пожалуйста, помогите!