Android开发中对于适时进行网络状态的获取

来源:互联网 发布:jquery数组push 编辑:程序博客网 时间:2024/05/16 05:39

Android开发中对于适时进行网络状态的获取
ps:这是我的第一次博客之旅,对于很多不足之处还望包容,谢谢各位亲们的理解。

在Android开发中涉及到网络访问时,时常需要进行网络状态的检查,一般可以通过ConnectivityManager来完成该工作。
适时监听网络变化功能的步骤:
1.定义一个Receiver重写其中的onReceive方法,在其中完成所需要的功能
public class NetworkReceiver extends BroadcastReceiver{

    @Override    public void onReceive(Context context, Intent intent) {        if(intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)){            ConnectivityManager manager =                     (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);             NetworkInfo networkInfo = manager.getActiveNetworkInfo();            int type = -1;            if(networkInfo != null && networkInfo.isAvailable()){                type = networkInfo.getType();                 onNetworkChange(type);            }        }    }}    public void onNetworkChange(int type) {        switch (type) {        case ConnectivityManager.TYPE_WIFI:            Toast.makeText(this, "TYPE_WIFI", 0).show();            break;        case ConnectivityManager.TYPE_MOBILE:            Toast.makeText(this, "TYPE_MOBILE", 0).show();            break;        case ConnectivityManager.TYPE_ETHERNET:            Toast.makeText(this, "TYPE_ETHERNET", 0).show();            break;        default:            Toast.makeText(this, "TYPE_NONE", 0).show();            break;        }    }

2.在适当的地方注册Receiver,可以在程序中注册,在onCreate中调用如下函数即可:
private void registerReceiver() {
NetworkReceiver receiver = new NetworkReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(receiver, filter );
}
3、在适当时取消注册Receiver,可以在程序中取消,在onDestroye中调用如下函数即可:
private void unregisterReceiver() {
if(receiver != null){
unregisterReceiver(receiver);
}
}
4、记得添加访问网络需要的权限

0 0
原创粉丝点击