0
這是我第一次使用廣播接收器,我認爲它會比這更簡單一點。我有一個類看起來像這樣:使用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));
,這是工作正常,當我關閉我的無線,我得到「NO 「在log.d ..但我怎麼得到的東西」發生「?我想要一個返回值或我可以使用的東西,例如,如果isConnected爲false,那麼重新啓動活動或其他東西。 我搜索了幾天,試圖瞭解他們是什麼以及他們如何工作...請幫助!