文档章节

在android上监听网络状态的变更

李光正
 李光正
发布于 2015/10/15 14:53
字数 259
阅读 7
收藏 0
  开发过程中经常会遇到一种需求,在你的Activity中需要获得网络连接的状态,以便确认下一步的流程,之前设计过一个复杂的方法,后来发现每次网络状态发生变化了都会发广播出来,广播这是个好东西,有了广播,我们就可以灵活的去处理了。

    当然,首先要加权限 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

这样,我们写receiver就可以了。


<receiver

    android:name="NetworkReceiver">

    <intent-filter>

        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

    </intent-filter>
</receiver>

code里面写

public class NetworkReceiver extends BroadcastReceiver {



    protected Context    mContext;



    @Override

    public void onReceive(Context context, Intent intent) {

        mContext = context;

        // 第一种

        ConnectivityManager connectivityManager = (ConnectivityManager) context

                .getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();

        NetworkInfo mobileNetInfo = connectivityManager

                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        showToast("Active Network Type", activeNetInfo);

        showToast("Mobile Network Type", mobileNetInfo);

        // 第二种

        NetworkInfo networkInfo = intent

                .getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);

        String extraInfo = intent

                .getStringExtra(ConnectivityManager.EXTRA_EXTRA_INFO);

        boolean isFailOver = intent.getBooleanExtra(

                ConnectivityManager.EXTRA_IS_FAILOVER, false);

        boolean noConnectivity = intent.getBooleanExtra(

                ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);

        NetworkInfo otherNetworkInfo = intent

                .getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

        String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);

        //

        showToast("networkInfo", networkInfo);

        showToast("extraInfo", extraInfo);

        showToast("isFailOver", isFailOver);

        showToast("noConnectivity", noConnectivity);

        showToast("otherNetworkInfo", otherNetworkInfo);

        showToast("reason", reason);

    }



    public void showToast(String info, Object object) {

        if (object == null) {

            return;

        }

        Toast.makeText(mContext, info + " : " + object.toString(), 0).show();

    }
}




本文转载自:http://blog.csdn.net/liguangzhenghi/article/details/7864392

共有 人打赏支持
李光正
粉丝 5
博文 64
码字总数 0
作品 0
大兴
《Android深入透析》之广播(Broadcast)

概述 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递。举一个大家都比较熟悉的例子来说明。在车上的时候大家都有收听广播的习惯,广播电台通过发送不同频...

朵朵和糖糖
2014/11/12
0
0
react native之获知设备联网或离线的状态信息。

NetInfo模块可以获知设备联网或离线的状态信息。 IOS 以异步的方式判断设备是否联网,以及是否使用了移动数据网络。 - 设备处于离线状态。 - 设备处于联网状态且通过wifi链接,或者是一个iOS...

Chason-洪
2017/10/17
0
0
Android BroadcastReceiver

1、Android 监听屏幕解锁事件 http://blog.csdn.net/gf771115/article/details/7991892 2、Android利用系统广播---监听应用程序安装和卸载 http://blog.csdn.net/wangjia55/article/details......

当空皓月
2014/11/07
0
0
Android MediaPlayer基本使用方式

使用MediaPlayer播放音频或者视频的最简单例子: JAVA代码部分: public class MediaPlayerStudy extends Activity { private Button bplay,bpause,bstop; private MediaPlayer mp = new Med......

kiy
2014/04/14
0
0
Android开发入门教程(六):暂停和恢复Activity

说明:本文是我自己对官方入门教程(Training)的翻译,仅仅是为了记录自己的学习过程。由于本人英语水平太低,基本上是靠金山词霸加上自己的理解,所以翻译的不好。如果你有好的意见请留言,...

AllenYao
2013/01/10
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

arts-week5

Algorithm 824. Goat Latin - LeetCode 152. Maximum Product Subarray - LeetCode 110. Balanced Binary Tree - LeetCode 67. Two Sum II - Input array is sorted - LeetCode 665. Non-dec......

yysue
15分钟前
0
0
iOS开发之AddressBook框架详解

iOS开发之AddressBook框架详解 一、写在前面 首先,AddressBook框架是一个已经过时的框架,iOS9之后官方提供了Contacts框架来进行用户通讯录相关操作。尽管如此,AddressBook框架依然是一个非...

珲少
45分钟前
1
0
两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践

Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot...

Java填坑之路
今天
3
0
《Spring5学习》04 - 面向切面编程

一、Spring面向切面编程的基本概念 面向切面编程(即AOP):把项目中需要再多处使用的功能比如日志、安全和事务等集中到一个类中处理,而不用在每个需要用到该功能的地方显式调用。 横切关注...

老韭菜
今天
2
0
day61-20180819-流利阅读笔记

跑道没了,它们还在跑:澳门赛狗业的遗孤 Daniel 2018-08-19 1.今日导读 相信你早就知道香港有个赛马会,可是你听说过香港的邻居澳门原本有个赛狗会吗?其实,对于澳门人来说,赛狗这项活动历...

aibinxiao
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部