通过本例程学习:

  • 后台代理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}" />

例子:Background Agent Sample的更多相关文章

  1. Background agent

    Periodic Task Periodic agents run for a small amount of time on a regular recurring interval. Typica ...

  2. wp8 入门到精通 WebClient Post

    WebClient wc = new WebClient(); var URI = new Uri("http://your_uri_goes_here"); //If any e ...

  3. 同时有background-size background-positon 两个属性的时候,如何在合并的background样式中展示

    今日写css,遇到background很多属性,于是想合并写,w3c只是说了各个属性都可以合并,但是并没有给出background-size background-positon合并的具体例子 bac ...

  4. pytorch例子学习-DATA LOADING AND PROCESSING TUTORIAL

    参考:https://pytorch.org/tutorials/beginner/data_loading_tutorial.html DATA LOADING AND PROCESSING TUT ...

  5. 转 11g Grid Control: Overview of the EMCTL Options Available for Managing the Agent

    1.概念: The Enterprise Manager DBConsole consists of the following components: - A Standalone OC4J Man ...

  6. 浅谈C#中常见的委托<Func,Action,Predicate>(转)

    一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的. 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇.我就不 ...

  7. HTTP协议详解篇(待续)

    1.工作流程 HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: (1)建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务 ...

  8. Android 内存泄漏总结

    内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题.内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收 ...

  9. C#中常见的委托(Func委托、Action委托、Predicate委托)

    今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predicate全面解析 首先来说明Func委托,通 ...

随机推荐

  1. Objective-C语言分类与协议

    分类(Category)允许向一个类文件中添加新的方法声明,它不需要使用子类机制,并且在类实现的文件中的同一个名字下定义这些方法.其语法举例如下: #import "ClassName.h& ...

  2. Linux 批量改名之 rename 命令

    刚学习到 rename 命令功能很强大,比win 下的 ren 厉害啊 具体看 man rename 语法:  rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ - ...

  3. 161216、使用spring的DefaultResourceLoader自定义properties文件加载工具类

    import java.io.IOException; import java.io.InputStream; import java.util.NoSuchElementException; imp ...

  4. json根据key取values

    function getJson(key, jsonObj) { for (var item in jsonObj) { if (item == key) { //item 表示Json串中的属性,如 ...

  5. 再谈Bellman-Ford

    这几天学校女生节,挺累的,感觉还是挺好玩的,前几天看了一下最短路,Bellman-fort算法果然比较厉害,今天又参考了刘汝佳的两本书,有了一点新的认识. 废话不说,先上代码: #include &l ...

  6. R----lubridata包介绍学习

    lubridate包,非常强大,能够识别各种类型的日期.字符型和时间型数据,都是格式比较特别的你数据,在处理时,比较麻烦,但是有了lubridate这个包之后,时间处理变得非常简单,这个包函数命名简单 ...

  7. centos6.6编译安装lnmp系列之nginx

    简介: 环境:虚拟机+centos6.6 Cmake下载地址:http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz Nginx 下载地址: http:/ ...

  8. Robots.txt 协议详解及使用说明

    一.Robots.txt协议 Robots协议,也称为爬虫协议.机器人协议等,其全称为“网络爬虫排除标准(Robots Exclusion Protocol)”.网站通过Robots协议告诉搜索引擎哪 ...

  9. 特征的Attribute Only选项

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. c语言期末复习题

    代码参考:<K&R> 1.单词计数 #include<stdio.h> #define IN 1 #define OUT 0 main() { int c, state ...