Android官方开发文档Training系列课程中文版:电池续航时间优化之检查、检测网络连接状态

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/connectivity-monitoring.html

通常会有一些后台服务需要连接到网络来更新数据。但是如果没有连接到互联网,或者由于网络太慢而不能完成更新,那么为什么不在连接到网络后或在状况良好时再做这些工作呢?

你可以使用ConnectivityManager来检查是否已经连接到互联网,如果连接上了,还可以查询当前的网络连接类型。

检测是否联网

如果没有连接到网络,那么就没必要做基于网络的更新了。下面的代码演示了如何通过ConnectivityManager来检查当前的设备是否连接到了网络。

ConnectivityManager cm =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&activeNetwork.isConnectedOrConnecting();

检测当前的网络连接类型

有时可能需要检查当前的网络连接类型。

移动设备的网络可能是蜂窝数据、WiMAX、Wi-Fi或以太网络提供。可以通过查询获知当前的网络连接类型,并基于当前的可用带宽来变更应用的刷新频率。

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

移动数据所花费的成本要明显的高于Wi-Fi,所以在大多数情况下,当处于移动数据连接时,应当降低更新频率。类似的,较大文件的下载也应当暂停,直到连接到Wi-Fi网络后再继续下载。

因为会中断某些网络任务,所以监听网络状况变化这一点就变得尤为重要了:以便可以在良好的网络状况下恢复任务。

监听网络连接的变化

当网络状况发生变化时,ConnectivityManager会广播一个CONNECTIVITY_ACTION (“android.net.conn.CONNECTIVITY_CHANGE”)的消息。你可以在清单文件中注册一个专门用于监听此消息的广播接收器,以便恢复或暂停后台网络任务。

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

由于设备的网络连接会时常发生变化,所以该广播接收器会在每次切换到移动数据或者Wi-Fi情况下会被触发。因此,最好是为了恢复更新或者下载才用此种方法。通常的做法是,在开始任务之前检查一下网络的连接状况,如果网络不允许,那么使用该方法以便恢复。

这项方法需要动态开启广播接收器,具体的讲解会在下节课描述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 304. 二维区域和检索 - 矩阵不可变(DP)

1. 题目 2. 解题 类似题目&#xff1a;LeetCode 308. 二维区域和检索 - 可变&#xff08;前缀和&#xff09; dp[i][j]数组表示 从左上角到i,j位置的所有和 sum[i1][j1]sum[i1][j]sum[i][j1]matrix[i][j]−sum[i][j]sum[i1][j1] sum[i1][j]sum[i][j1]matrix[i][j]-sum[i][j]…

一键离线下载python安装包:

Python 第三方库 批量下载安装包,离线批量安装Python第三方库&#xff1a;https://www.cnblogs.com/qiuyubai/p/14084501.html 核心代码&#xff1a; 一键生成安装包的索引文件requirements.txt pip freeze >requirements.txt pip download -d ./ -r requirements.txt全部…

论文浅尝 - ICML2020 | 对比图神经网络解释器

论文笔记整理&#xff1a;方尹&#xff0c;浙江大学在读博士&#xff0c;研究方向&#xff1a;图表示学习。Contrastive Graph Neural Network Explanation动机与贡献本文主要关注图神经网络的解释性问题&#xff0c;这样的解释有助于提升GNN的可信度&#xff0c;能够更好的理解…

这可能是最简单又有效的自监督学习方法了

文 | 王珣知乎本文已获作者授权&#xff0c;禁止二次转载从Kaiming的MoCo和Hinton组Chen Ting的SimCLR开始&#xff0c;自监督学习&#xff08;SSL&#xff09;成了计算机视觉的热潮显学。凡是大佬大组&#xff08;Kaiming, VGG&#xff0c;MMLAB等&#xff09;&#xff0c;近两…

大众点评账号业务高可用进阶之路

引言 在任何一家互联网公司&#xff0c;不管其主营业务是什么&#xff0c;都会有一套自己的账号体系。账号既是公司所有业务发展留下的最宝贵资产&#xff0c;它可以用来衡量业务指标&#xff0c;例如日活、月活、留存等&#xff0c;同时也给不同业务线提供了大量潜在用户&…

Android官方开发文档Training系列课程中文版:电池续航时间优化之按需开启广播接收器

原文地址&#xff1a;http://android.xsoftlab.net/training/monitoring-device-state/manifest-receivers.html 监测设备状态变化最简单的实现方式就是为每种状态都创建一个广播接收器&#xff0c;然后只需在相应的广播接收器内依据当前的设备状态重新执行各自的任务即可。 …

LeetCode 493. 翻转对(归并排序)

1. 题目 给定一个数组 nums &#xff0c;如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。 你需要返回给定数组中的重要翻转对的数量。 输入: [1,3,2,3,1] 输出: 2输入: [2,4,3,5,1] 输出: 3来源&#xff1a;力扣&#xff08;LeetCode&#x…

执行Dockerfile构建基础镜像,建立python工作环境

Docker Dockerfile&#xff1a;https://www.runoob.com/docker/docker-dockerfile.html 核心内容&#xff1a; 指令详解 COPY 复制指令&#xff0c;从上下文目录中复制文件或者目录到容器里指定路径。 格式&#xff1a; COPY [--chown<user>:<group>] <源路径…

论文浅尝 - ICML2020 | 通过关系图上的贝叶斯元学习进行少样本关系提取

论文笔记整理&#xff1a;申时荣&#xff0c;东南大学博士生。来源&#xff1a;ICML 2020链接&#xff1a;http://arxiv.org/abs/2007.02387一、介绍本文研究了少样本关系提取&#xff0c;旨在通过训练每个关系少量带有标记示例的句子来预测句子中一对实体的关系。为了更有效地…

美团外卖客户端高可用建设体系

背景 美团外卖从2013年11月开始起步&#xff0c;经过数年的高速发展&#xff0c;一直在不断地刷新着记录。2018年5月19日&#xff0c;日订单量峰值突破2000万单&#xff0c;已经成为全球规模最大的外卖平台。业务的快速发展对系统稳定性提出了更高的要求&#xff0c;如何为线上…

Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码

原文地址&#xff1a;http://android.xsoftlab.net/training/multiple-threads/index.html 引言 大量的数据处理往往需要花费很长的时间&#xff0c;但如果将这些工作切分并行处理&#xff0c;那么它的速度与效率就会提升很多。在拥有多线程处理器的设备中&#xff0c;系统可…

我哭了,工业界AI项目落地有多难?

文 | 皮特潘源 | CVer人工智能是近几年最火热的技术名词&#xff0c;如果不谈人工智能相当于落伍&#xff0c;但当真正进入人工智能领域时才发现&#xff0c;一开始以为“拦路虎”是算法&#xff0c;后面发现落地是一个巨大的难题。本文从作者的经历和经验教训展开&#xff0c;…

LeetCode 646. 最长数对链(区间 贪心)

1. 题目 给出 n 个数对。 在每一个数对中&#xff0c;第一个数字总是比第二个数字小。 现在&#xff0c;我们定义一种跟随关系&#xff0c;当且仅当 b < c 时&#xff0c;数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。 给定一个对数集合&#xf…

以太网和路由设置,内网和外网同时上

第一步&#xff0c;查看自己内网的地址&#xff0c;网络与internet设置&#xff0c;更改适配器选项&#xff0c;出现下面的页面 点击内网&#xff0c;右击WLan&#xff0c;点击状态 点击详细信息&#xff1a; 记录网关信息&#xff1a; 第二步&#xff1a;查找路由器设置 …

论文浅尝 - AAAI2020 | 通过知识库问答改善知识感知对话生成

论文笔记整理&#xff1a;胡楠&#xff0c;东南大学博士。来源&#xff1a;AAAI 2020动机现在的将外部知识整合到对话系统中的研究仍然存在一定缺陷。首先&#xff0c;先前的方法难以处理某些语句的主语和关系&#xff0c;比如当语句中的相关实体彼此相距较远时。其次&#xff…

互联网企业数据安全体系建设

一、背景 Facebook数据泄露事件一度成为互联网行业的焦点&#xff0c;几百亿美元市值瞬间蒸发&#xff0c;这个代价足以在地球上养活一支绝对庞大的安全团队&#xff0c;甚至可以直接收购几家规模比较大的安全公司了。 虽然媒体上发表了很多谴责的言论&#xff0c;但实事求是地…

Android官方开发文档Training系列课程中文版:线程执行操作之创建多线程管理器

原文地址&#xff1a;http://android.xsoftlab.net/training/multiple-threads/create-threadpool.html 上节课我们学习了如何定义一个任务。如果只是执行单次任务&#xff0c;那么刚刚所学的已经基本满足要求了。如果需要针对不同的数据执行同种任务&#xff0c;并且需要同一…

NLP研究者必备的语言学书籍!

文 | Serena Gao知乎首先&#xff0c;做nlp不一定要很懂语言学&#xff0c;也不一定要跟语言学扯上关系。nlp可以仅是data mining&#xff0c;features engineering, 也的确有很多work目前在用文本或者对话做为数据集&#xff0c;然后用统计学方法实现目的&#xff0c;比如deep…

LeetCode 334. 递增的三元子序列

1. 题目 给定一个未排序的数组&#xff0c;判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1&#xff0c; 使得 arr[i] < arr[j] < arr[k] &#xff0c;返回 true ; 否则返回 false 。 说…

论文小综 | Neuro-Symbolic Reasoning in NLP

本文作者&#xff1a;邓淑敏&#xff0c;浙江大学在读博士&#xff0c;研究方向为低资源条件下知识图谱自动化构建关键技术研究。深度学习的高速发展使得模型的表达能力逐步完善&#xff0c;在一些感知任务&#xff08;例如动作识别和事件检测&#xff09;上取得了显著成果。但…