通过本例程学习:

  • 后台代理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. mysql数据库的主从

    1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; 2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责 ...

  2. 使用 jsPlumb 绘制拓扑图 —— 异步加载与绘制的实现

    本文实现的方法可以边异步加载数据边绘制拓扑图. 有若干点需要说明一下: 1.  一次性获取所有数据并绘制拓扑图, 请参见文章: <使用 JsPlumb 绘制拓扑图的通用方法> ; 本文实现 ...

  3. 读取NfcA格式数据

    如何读取数据? Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); NfcA nfcA = NfcA.get(ta ...

  4. Spring中的事物管理,用 @Transactional 注解声明式地管理事务

    事物: 事务管理是企业级应用程序开发中必不可少的技术,  用来确保数据的 完整性和 一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四 ...

  5. XAF应用开发教程-内置Attribute功能列表

    在 XAF 框架,一些用来生成一个业务应用程序的信息是在Attribute中指定.您可以将属性应用到业务类 (或它的成员) 指定验证规则,指定如何对数据进行显示. 设置关系类等.本主题提供了有关在何处 ...

  6. Shiro Security

    手动创建shiro Filter的java代码 // Factory<org.apache.shiro.mgt.SecurityManager> factory = new IniSecu ...

  7. ubuntu15.04 安装 pylab失败,先记下来,漫漫看

    pydo@planpls:/var/python/web2py$ pip install pylab Downloading/unpacking pylab Downloading pylab-0.1 ...

  8. JDK中的native2ascii命令详解

    1.native2ascii简介: native2ascii是sun java sdk提供的一个工具.用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码 ...

  9. MFC编程入门之十(对话框:设置对话框控件的Tab顺序)

    前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为"计算"按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但 ...

  10. JQuery中的id选择器含有特殊字符时,不能选中dom元素

    1.jquery类库在我们实际项目中用的很多,大家经常需要根据控件的id,获取对应的html元素.但是:当id含有特殊字符的时候,是不能选中的 2.jquery的id选择器只支持,单词.阿拉伯数字.下 ...