//实现有无网络监听
动态注册方式特色: 在代码中进行注册后, 当应用程序关闭后, 就再也不进行监听。
//源文件2个一个MainActivity.java和NetStateReceiver.java类
//记得在配置清单里添加网络链接权限
一、MainActivity.java类
代码
public class MainActivity extends Activity {java
private NetStateReceiver netStateReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
netStateReceiver = new NetStateReceiver();
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
//在这个方法动态建立广播接收
IntentFilter filter = new IntentFilter();//过滤
//设置过滤
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
//动态注册广播接收
registerReceiver(netStateReceiver, filter);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
//撤销网络状态监听
unregisterReceiver(netStateReceiver);
}
}android
=================网络
二、NetStateReceiver.java类ide
代码spa
public class NetStateReceiver extends BroadcastReceiver {.net
@Override
public void onReceive(Context context, Intent intent) {
//获取链接管理器
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
//经过链接管理器获取当前网络信息
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if(info == null){
Toast.makeText(context,"当前无网络!", Toast.LENGTH_SHORT).show();
}
else if(info.isConnected()){//有网络
Toast.makeText(context, info.getTypeName() + "网路已链接", Toast.LENGTH_SHORT).show();
}
}get
}
it