此篇博客是对之前一篇博客同样讲Windows Phone 8.1后台任务的补充:
之前关于Windows Phone 8.1后台任务的博客链接:Windows Phone 8.1后台任务
通过对前一篇博客的认识,知道当建立了后台任务后,就是要在合适的时间去触发它即可,这个时候触发器来帮忙
了。但是除了满足触发条件去触发后台任务之外,我们是否还要让后台任务满足其他一些条件呢。否则在不满足所有
条件之前后台任务是不会运行的。
给后台任务指定条件的任务交给SystemConditionType这个类去完成
类的说明链接:SystemConditionType
注意条件可以添加多个哟,但前提是条件之间互相不矛盾。例如你不能添加一个手机不联网的条件,又添加一个手机
联网的条件,逻辑上是说不通的啊
就打个比方来说吧,我们把触发器设置的当我们点亮屏幕的时候触发后台任务,但是前提是手机是需要已经连着网络
的(也就是说,如果手机不联网,当我们点亮手机屏幕的时候,后台任务还是不会触发)。所以这边我们不仅用触发器
的触发事件默认给后台任务设置了点亮屏幕的条件(当点亮屏幕时),而且还给后台任务能否成功运行设置了额外的条
件--手机必须连着网。
当然举上述例子也许情形不是很恰当,但是很能说明这样一个问题,有助理解。
注意:
对后台任务设置条件可阻止任务不必要地运行,从而节省电池电量和 CPU 运行时。例如,如果你的后台任务在计时
器上运行并要求 Internet 连接,请在注册该任务之前将InternetAvailable条件添加到TaskBuilder。通过在计时器
时间过去以及 Internet 可用时让任务运行,有助于防止任务使用不必要的系统资源和电池寿命。
之前一篇博客的思想流程:
建立后台任务(设置后台任务入口)->建立触发器并设置好触发条件->给后台任务绑定触发器->注册后台任务
主要用到的是SystemTrigger类
这篇博客的思想流程:
建立后台任务(设置后台任务入口)->建立触发器并设置好触发条件->给后台任务绑定触发器->设置后台任务运行条件
->将运行条件绑定给后台任务(也就是向后台任务中添加运行条件)->注册后台任务
可以看出确实只是多了设置条件和绑定条件这一块,但是确实是系统资源和电池资源的一些优化细节,对后台任务运
行条件的进一步严谨化。
多出的两个步骤的解释:
步骤一:创建运行条件具体的类型对象--SystemConditionType(设置后台任务运行条件)
SystemCondition internetCondition = new SystemCondition(SystemConditionType.InternetAvailable);
步骤二:向你的后台任务中添加 SystemCondition 对象(也就是将条件绑定给后台任务)
taskBuilder.AddCondition(internetCondition);
推荐链接:如何设置后台任务的运行条件 (XAML)