Android网络切换状态广播

来源:互联网 发布:86编程键盘 编辑:程序博客网 时间:2024/06/06 11:02

直接上代码:

    *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); 
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 草莓被蚂蚁吃了怎么办 脖子被种了草莓怎么办 2岁的宝宝说脏话怎么办 欠钱的人跑路了怎么办 美国非婚生子父亲不认怎么办 孕4个月肚子胀气怎么办 8个月孕妇感冒了怎么办 孕8个月感冒鼻塞怎么办 怀孕八个月感冒了怎么办 孕八个月咳嗽了怎么办 享物说同城自提怎么办 锤基意外怀孕怎么办 08 蛐蛐罐底翻砂了怎么办 剑网3中被盗号后怎么办 本人想离婚对方躲避怎么办 微信不能说语音怎么办 微信语音发不了怎么办 吃鸡语音用不了怎么办 要杀我的人见面怎么办 转晕了想吐怎么办 原地转圈头晕恶心想吐怎么办 孩子吃凉的呕吐头还晕怎么办 孩子转晕了想吐怎么办 转圈晕了想吐怎么办 我爸总是骂我妈怎么办 转圈转的想吐怎么办 大便干燥拉不出来怎么办 吹完头发很干燥怎么办 腿摔伤了结痂疼怎么办 蹭wifi被禁止后怎么办 电脑wifi给拉黑怎么办 电脑想用无线网怎么办 中路被对方打崩了怎么办 英雄联盟队友太坑怎么办 匹配被王者虐了怎么办 lol碰到嘴臭的怎么办 小婴儿脾气大怎么办呢? 玩游戏输入法会跳出出来怎么办 逆水寒fps太低怎么办 我dcj没地速怎么办 电焊看久眼睛疼怎么办