Android——断网监测
package com.shoneworn.mydemo;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
public class BaseNetActivity extends Activity {
protected BroadcastReceiver mNetworkChangeReceiver;
protected boolean mIsNetworkChangeReceiverRegistered = false;
AlertDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
initDialog();
//注册广播用于监听网络状态改变
mNetworkChangeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
detectNetWork();
}
};
}
private void initDialog() {
dialog = new AlertDialog.Builder(this).setTitle("网络异常")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
}).setMessage("网络发生异常,请检查后重试!").create();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(mNetworkChangeReceiver, new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION));
}
@Override
protected void onPause() {
super.onPause();
try {
unregisterReceiver(mNetworkChangeReceiver);
} catch (Exception e) {
}
}
protected void detectNetWork() {
if (!isConnected(this)) {
dialog.show();
} else {
dialog.dismiss();
}
}
//判断网络是否连接
public boolean isConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
return (info != null && info.isConnected());
}
}
本人很懒,懒得去自定义 一个漂亮的Dialog.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
权限一定不要忘记了!
不积跬步,无以至千里。

浙公网安备 33010602011771号