public class NmaConnectivityReceiver extends BroadcastReceiver {
private static final String LOGTAG = LogUtils
.makeLogTag(NmaConnectivityReceiver.class);
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null) {
String netType = (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) ? "3G" : "WIFI";
if (networkInfo.isConnected()) {
Log.i(LOGTAG, "Network connected");
if (AndroidHelper.isAppRunning(context) || LoginActivity.mIfRunning) {
Toast.makeText(context, "已连接到" + netType + "网络", Toast.LENGTH_SHORT).show();
//TODO 进行联网操作
context.sendBroadcast(new Intent(Constants.NMA_ACTION_NETWORK_CONNECTED));
}
}
} else {
Log.e(LOGTAG, "Network unavailable");
if (AndroidHelper.isAppRunning(context)) {
Toast.makeText(context, "网络连接已断开", Toast.LENGTH_SHORT).show();
//TODO 进行断网操作
context.sendBroadcast(new Intent(Constants.NMA_ACTION_NETWORK_UNAVAILABLE));
}
}
}
}
最后别忘了在Application中来注册
private BroadcastReceiver connectivityReceiver;
// 注册网络监听
connectivityReceiver = new NmaConnectivityReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(connectivityReceiver, filter);
用完记得销毁昂
unregisterReceiver(connectivityReceiver);
网友评论