NSURLSessionConfiguration的discretionary属性

最近使用NSURLSession做下载时,配置了NSURLSessionConfiguration为backgroundSessionConfiguration,
在下载时发现拔下iPhone拔下电源后,点击下载无任何进度,连接电源后即可正常下载,最终发现是NSURLSessionConfiguration的discretionary设置为了YES导致;
此属性在官方API文档的定义为:

/* allows background tasks to be scheduled at the discretion of the system for optimal performance. */
@property (getter=isDiscretionary) BOOL discretionary NS_AVAILABLE(10_10, 7_0);

此属性设置为YES时,系统根据当前性能自动处理后台任务的优先级,以获得最佳性能 (仅background session有效),
但是我用的测试机为iPhone7,且电量是满满的。
经查阅:allowsCellularAccess 和 discretionary 被用于节省通过蜂窝连接的带宽。建议在使用后台传输的时候,使用discretionary属性,而不是allowsCellularAccess属性,因为它会把WiFi和电源可用性考虑在内。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容