例子:Background Agent Sample

本文详细解析了WindowsPhone后台代理(包括定期代理和资源密集型代理)的使用限制,如API使用限制、内存限制、生效时间、崩溃保护、节电模式、后台任务数量限制等。并提供了实现代码示例,帮助开发者了解如何正确配置和使用这些后台代理。

通过本例程学习:

  • 后台代理Agent的使用方法

定期代理(PeriodicTask)来说,限制了:

  1. 有一些API不能使用,并不是说你不调用就可以了,只要你在同一个程序集里使用了这些API,就不会通过验证;
  2. 内存不能超过6MB,否则立即终止;
  3. 生效时间最长只有14天,过期后就需要重新计划。14天需要用户,重新启动Agent
  4. 连续两次崩溃之后会被禁用,做好准备捕捉一切异常吧;
  5. 每30分钟运行一次,每次最多执行25秒,超时后立即终止,所以如果在后台任务里下载文件的话,要特别注意文件的大小;
  6. 节电模式会阻止执行;
  7. 手机中的后台任务数量是有上限的,最少为6个,当手机中已启用的后台任务达到上限后,就无法再启用新的后台任务了,这时候你还得提醒用户:“亲,到这里的这里的这里看看后台任务是不是超过6个了,是的话,挑一个禁用了,然后回来再试试”……

 

资源密集型代理

除了定期代理之外,Windows Phone还支持另外一种后台任务——资源密集型代理(ResourceIntensiveTask),不过我们通常都不会用到它,因为它简直就是个杯具,它的限制不仅多,而且都很变态,除了拥有定期代理的前4挑限制之外,它还限制了:

  • 电池电量不得低于90%,而且需要连接外部电源;
  • 需要非手机网络连接,连着WIFI或PC吧,亲;
  • 屏幕必须锁定,也不能接打电话,否则不执行;
  • 最多执行10分钟,超时立即终止;

 

 

实现代码:

using Microsoft.Phone.Scheduler;


        PeriodicTask periodicTask;
        ResourceIntensiveTask resourceIntensiveTask;

//New
periodicTask = new PeriodicTask(periodicTaskName);

//Add
ScheduledActionService.Add(periodicTask);

//Set as Context
PeriodicStackPanel.DataContext = periodicTask;


//Using property of Agent in XAML
<TextBlock Text="{Binding LastScheduledTime}" />
<TextBlock Text="{Binding ExpirationTime}" />
<TextBlock Text="{Binding LastExitReason}" />

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/1314ren/p/3255623.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值