Android网络切换状态广播

原创 2016年05月30日 18:56:18

直接上代码:


    *package com.juyoulicai.forexproduct.Service;

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.widget.Toast;

    import com.juyoulicai.eventbus.ForexDateEvent;
    import com.juyoulicai.util.MLog;

    import org.greenrobot.eventbus.EventBus;

    /**
     * 作者: allen on 16/5/30.
     */
    public class ConnectionChangeReceiver extends BroadcastReceiver {
        private static  final String TAG =ConnectionChangeReceiver.class.getSimpleName();
        @Override
        public void onReceive(Context context, Intent intent) {
            MLog.d(TAG,"网络状态改变");
            boolean success =false;
            /**
             * 获得网络连接服务
             */
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo.State state =connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
            if (NetworkInfo.State.CONNECTED==state){
                success =true;
            }
            state =connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
            if (NetworkInfo.State.CONNECTED==state){
                success =true;
            }
            if (!success){
                Toast.makeText(context,"网络连接失败",Toast.LENGTH_LONG).show();
                EventBus.getDefault().post(new ForexDateEvent(ForexDateEvent.NetworkInfoState,false));
            } else {
                EventBus.getDefault().post(new ForexDateEvent(ForexDateEvent.NetworkInfoState,true));
            }
        }
    }

记得在Manifest文件里面进行权限声明,和广播接收器注册。

< !– Needed to check when the network connection changes –>

< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>   
< receiver android:name="you_package_name.ConnectionChangeReceiver"   android:label="NetworkConnection">   
< intent-filter>   
      < action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>   
< /intent-filter>   
< /receiver> 

* 使用方式一:*

  1. 在Activity的onCreate中:
    //注册网络监听

    IntentFilter filter = new IntentFilter();  
    filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
    registerReceiver(mNetworkStateReceiver, filter); 
    
  2. 在Activity中的onDestroy中:
    //取消监听

    unregisterReceiver(mNetworkStateReceiver); 
    

使用方式二:
1. 应用启动时,启动Service,在Service的onCreate方法中注册网络监听:
//注册网络监听

IntentFilter filter = new IntentFilter();  
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
registerReceiver(mNetworkStateReceiver, filter); 

2. 应用退出时,Service关闭,在Service的onDestroy方法中取消监听:
//取消监听

    unregisterReceiver(mNetworkStateReceiver); 
版权声明:本文为博主原创文章,未经博主允许不得转载。(转载请注明出自 AllenCoder)

Android 通过注册广播,实时监听网络连接与断开状态的变化

很多时候我们都需要实时监听网络状态,当网络状态发生变化之后立即通知程序进行不同的操作。 监听广播的两种方式: (1)在AndroidManifest.xml配置文件中声明 ...

Android之监测手机网络状态的广播

今天具体说下Android检测网络状态的广播,我们在做一些手机应用的时候如果网络发生改变可能会给用户造成一些损失,在中国2G,3G网络都没有普及的情况下,基本都是包流量的,所以在做一些视频应用软件的时...

获取本地图片或拍照,进行头像图片的上传的工具类

1. 图片的获取,裁剪,压缩类(可以作为主功能代码在Activity中) /** * 显示修改头像的对话框 */ public void showChoosePicDialog(View v) ...

Android 属性动画,沿着一定角度弹出菜单

在前面的博客中已经简单的介绍了属性动画的一些特性。本文是对《Android 属性动画特效》http://blog.csdn.net/antimage08/article/details/5090389...

android 使用广播监听网络状态

参考:http://blog.csdn.net/androidbluetooth/article/details/7199708 博客 http://blog.csdn.net/androidb...
  • qjbagu
  • qjbagu
  • 2013年05月16日 13:51
  • 516

network: android 使用广播监听网络状态

博客 http://blog.csdn.net/androidbluetooth/article/details/6860146 详细的粘贴了很多判断网络的方法。 最近,遇到这样一个需求: ...
  • frdde
  • frdde
  • 2012年04月14日 21:22
  • 562

关于android广播包监听网络状态变化收到java.lang.NullPointerException: Error receiving broadcast Intent

在写一个广播包来监听网络状态改变时,在解锁手机时出现java.lang.NullPointerException的错误,错误显示为net_status这个TextView控件变成了空指针,但是不知道为...

Android网络状态广播监听

public class NetworkChangeReceiver extends BroadcastReceiver { private final static String T...

network: android 使用广播监听网络状态

博客 http://blog.csdn.net/androidbluetooth/article/details/6860146 详细的粘贴了很多判断网络的方法。 最近,遇到这样一个需求: ...

android 使用广播监听网络状态

 网络状态发生变化的时候,系统会发出 android.net.conn.CONNECTIVITY_CHANGE . 下面是实现的 demo : package mark.zhang;...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android网络切换状态广播
举报原因:
原因补充:

(最多只允许输入30个字)