import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
/**
*網絡連接Receiver,如果網絡中途斷掉,進行相應提示
* @author
*
*/
public class ConnectionChangeReceiver extends BroadcastReceiver {
private onNetworkChangedListener mOnNetworkChangedListener;
public void setOnNetworkChangedListener(
onNetworkChangedListener onNetworkChangedListener) {
this.mOnNetworkChangedListener = onNetworkChangedListener;
}
@Override
public void onReceive(Context context, Intent intent) {
if(mOnNetworkChangedListener != null){
mOnNetworkChangedListener.onNetworkChanged(isNetworkAvailable(context));
}
}
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
public static interface onNetworkChangedListener{
public void onNetworkChanged(boolean isConnected);
}
}
先定義一個監聽網絡的廣播接收器
然後用的時候
mConnectionChangeReceiver = new ConnectionChangeReceiver();
mConnectionChangeReceiver
.setOnNetworkChangedListener(new ConnectionChangeReceiver.onNetworkChangedListener() {
@Override
public void onNetworkChanged(boolean isConnected) {
if ( !isConnected) {
//斷開網絡的情況
} else {<span style="font-family: Arial, Helvetica, sans-serif;"> //連接網絡的情況 </span>
}
}
});
}
IntentFilter broadcastFilter = new IntentFilter(
"android.net.conn.CONNECTIVITY_CHANGE");
if (mConnectionChangeReceiver != null) {
registerReceiver(mConnectionChangeReceiver, broadcastFilter);
}
記得聲明mConnectionChangeReceiver