Android 7.0新特性--Data Saver

DataSaver功能在Android N中得到增强,允许用户全局控制设备数据使用,限制应用在后台消耗移动数据。开发者可通过ConnectivityManager API检查DataSaver状态,并利用JobScheduler在Wi-Fi环境下执行数据密集型任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Data Saver (Android Development Patterns S3 Ep 6)

Youtube视频链接:
https://www.youtube.com/watch?v=H-9xKmuwawg&index=6&list=PLWz5rJ2EKKc-lJo_RGGXL2Psr8vVCTWjM

Data Saver目的:加强用户对设备上app数据使用的控制,以节省用户的数据流量,所以开发者需要做出更大的努力来优化app的数据使用,但是通过Data Saver和JobScheduler 可以简化开发。

在Android N (API 24)上,扩展了在MarshMallow上的Data Saver功能(用户可以禁止某一应用在位于后台时联网),现在用户可以让整个设备处于Data Saver模式,当设备处于非WIFI连接(处于移动网络)时,来限制任何应用在后台联网。

Data Saver 在7.1.1(API25)上的显示如下截图所示:

这里写图片描述
这里写图片描述
这里写图片描述

以下为官网Youtube视频中介绍:
这里写图片描述

下图左边为扩展后的Data Saver
这里写图片描述

通过getRestrictBackgroundStatus()这个API来判断Data Saver是否针对我们的app处于激活状态,通过针对不同的状态进行相关的设置,可以使得我们的应用获得更好的行为表现。

有以下三种状态,根据不同的情况,我们应该对app做相应的处理,
这里写图片描述

在app中可以用类似下面的代码段来判断当前的Data Saver状态,然后做出相应操作,
With a new API added to ConnectivityManager, you can check the current state of Data Saver and adjust your apps’ data usage
这里写图片描述

Data Saver的执行流程:
这里写图片描述

如果我们的应用不是对网络需求为即时性的,那么可以等网络变为WIFI状态下,再进行同步数据操作,使用JobScheudler可以简化这类操作。
这里写图片描述

此外,可以创建广播监听Data Saver的状态变化,可以请求用户将我们app加入白名单,可以使用adb来测试Data Savaer对我们app的影响情况,具体方法见官网介绍:
https://developer.android.com/training/basics/network-ops/data-saver.html?utm_campaign=android_series_datasaverdoc_062116&utm_source=anddev&utm_medium=yt-desc

优化app的一些建议:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值