使用广播实时更新网络状态变化

如果网络突然断开,我们要及时地提醒用户网络已断开,要实现此功能,我们可以接收网络状态改变这样一条广播,当由连接状态变为断开状态时,系统就会发送一条广播,我们接收到之后,再通过网络的状态做出相应的操作

public class NetworkStateReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

if (!isNetworkAvailable(context)) {

//网络不可用操作

}  else{

//网络可用操作

}

}

/**

* 网络是否可用

*

*/

public static boolean isNetworkAvailable(Context context) {

ConnectivityManager mgr = (ConnectivityManager)                   context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo[] info = mgr.getAllNetworkInfo();

if (info != null) {

for (int i = 0; i < info.length; i++) {

if (info[i].getState() == NetworkInfo.State.CONNECTED) {

return true;

}

}

}

return false;

}

}

再注册一下这个接收者的信息:

<receiver android:name=".NetworkStateReceiver">

<intent-filter>

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

<category android:name="android.intent.category.DEFAULT" />

</intent-filter>

</receiver>

还要添加网络限权:

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

时间: 2024-10-24 00:12:08

使用广播实时更新网络状态变化的相关文章

Android开发之使用广播监听网络状态变化

我们经常需要判断网络状态的变化,如有无网络,所以需要监听网络状态的变化,比如网络断开,网络连接给予友好提示.如何监听网络状态的变化呢,最近工作中需要用到这个,于是就用广播机制来实现了网络状态的监听. 使用广播机制来监听网络状态主要涉及到以下几点: 1.需要自己编写个网络广播接收器,该接收器继承BroadcastReceiver类,用来接收系统发出的广播.比如我自己写了个NetStatusReceiver广播接收器.代码如下: package com.log.system; import andr

动态注册广播,监听网络状态变化,判断网络模式

注册广播监听网络连接和断开状态的变化,判断网络连接模式: private ConnectivityManager mConnectivityManager; private NetworkInfo netInfo; /////////////监听网络状态变化的广播接收器 private BroadcastReceiver myNetReceiver = new BroadcastReceiver() { @Override public void onReceive(Context contex

sphinx增量索引和主索引来实现索引的实时更新

项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条记录的ID 2. 当索引时,然后从数据库中取出所有ID大于上面那个sphinx中的那个ID的数据, 这些就是新的数据,然后创建一个小的索引文件 3. 把上边我们创建的增量索引文件合并到主索引文件上去 4. 把最后一条记录的ID更新到第一步创建的表中 值得注意的两点: 1)当合并索引的时候,只是把增量

解决 三星Note3 桌面小部件不实时更新/不刷新 的问题

机型及问题描述:我的是三星note3 (国行 SM-N9008V),已ROOT,安装了LBE安全大师.在桌面小部件中,有些不会实时更新.比如有 滴答清单(办过的事项无法勾选),百度云音乐(歌曲播放更新不及时),系统自带健走计步器(走路数量不更新)等. 问题原因:经测试,原因应该出在LBE安全大师会自动清理RAM,导致负责桌面小部件的进行被杀掉了,致使无法顺利更新小部件. 解决方法:打开LBE安全大师--"手机加速"--"任务管理"--上方的"白名单任务&q

iOS实时监控网络状态的改变

在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI网络:自动下载高清图片 4G/3G网络:只下载缩略图 没有网络:只显示离线的缓存数据 常用的有以下两种方法: (1).使用苹果观法提供的检测iOS设备网络环境用的库 Reachablity (2).使用AFN框架中的AFNetworkReachabilityManager来监听网络状态的

解决Android Studio引入SVN上Eclipse依赖工程不能实时更新的思考

解决Android Studio引入SVN上Eclipse依赖工程不能实时更新的思考 标签(空格分隔): AndroidStudio SVN 使用Android Stuido开发了几个月,都是使用libs/jar实现对外部库的依赖,最近新的需求需要依赖工程.使用SVN进行版本管理,而且依赖工程为Eclipse项目,在开发过程中发现一个问题:作为Module依赖加入的工程,不能直接以new Module的模式从SVN服务器上直接 CheckOut出来作为依赖Module:需要从SVN服务器Chec

实时更新数据,无需刷新:a,如何使用Turbolinks clearCache(), b Action Cable

https://gorails.com/episodes/how-to-use-turbolinks-clearCache?autoplay=1 用途: 更方便的实时从服务器更新局部网页,在这页更新了一条记录的显示方式, 再打开的之前网页的相同位置或相同的功能模块显示也会同步更新. 把Turbolinks.clearCache(), Turbolinks.clearCache(); 比如放在你写的xx.js.erb的第一行. 如果不加这句话,turbolinks只会reload之前的网页中的数据

js 实现公告实时更新变动

<div class="notice_active"> <ul> <li><a href="">瑞灿科技直招网络人才    [2019-01-24]</a></li> <li><a href="">瑞灿科技正在复工中欢迎广大人士应聘   [2020-02-24]</a></li> <li><a href=&qu

【性能优化】懒、懒加载、懒动画 --- 基于window滚动事件来实时更新DOM的视图状态,以表明是否在规定的可视区,并作有change回调

/* * * 扩展jq原型: 懒.懒加载.懒动画 * --- 基于window滚动事件来实时更新DOM的视图状态,以表明是否在规定的可视区,并作有change回调 * * $jq.viewChange( {top:100,bottom:100,change:function(status){}} ) --- status: 'in'/'out' * $jq.viewChange('off') * * $jq[n].viewChange.status = 'in'/'out' ----- 状态为'