Android 7.0新特性--Data Saver

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的一些建议:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/unicorn97/article/details/53057048