平常編程中是否遇到過以下情況:
1.網絡通暢——>網絡中斷
2.無網絡連接——>網絡連接
3.網絡的切換——>wifi切換成4g,4g切換成wifi
我們需要對以上的幾種情況作出相應的處理,或許提示,獲取獲取切換到4g時,開啓小圖省流量模式,以及進行socket的重新連接等,諸如此類的處理。
Demo下載:(待定)
效果圖:
下面直接上程序片段
package com.tb.demo.net;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
/**
* Created by tangbin on 15/9/10.
*/
public class NetBroadcastReceiver extends BroadcastReceiver {
private ConnectivityManager connectivityManager;
private NetworkInfo info;
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
info = connectivityManager.getActiveNetworkInfo();
if (info != null && info.isAvailable()) {
String name = info.getTypeName();
Log.d(NetBroadcastReceiver.class.getSimpleName(), "終於來網了呢:網絡類型是"
+ name);
// doSomething()
} else {
Log.d(NetBroadcastReceiver.class.getSimpleName(), "斷網了,親");
// doSomething()
}
}
}
}
<receiver android:name="com.tb.demo.net.NetBroadcastReceiver">
<span style="white-space:pre"> </span><intent-filter>
<span style="white-space:pre"> </span><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<span style="white-space:pre"> </span></intent-filter>
</receiver>