wp-后台代理

windows phone中后台代理分两种,分别为PeriodicTaskResourceIntensiveTask 。


限制:

1.定期代理和资源密集型代码任何时候都不能使用超过 11 MB 的内存。音频代理限制为 15 MB

2.每隔两周需要重新计划

3.两次连续崩溃之后取消代理计划


定期代理(PeriodicTask):

1.计划间隔:30 分钟,若要优化电池使用时间,定期代理的运行可以与其他后台进程一致,因此执行时间可能最多漂移 10 分钟。

2.计划持续时间:25 秒,其他限制可能会导致代理提取终止。

3.节电模式可能会阻止执行

4.每个设备的定期代理限制,每个设备配置而异并且可以低到 6


资源密集形代理(ResourceIntensiveTask ):

1.资源密集型代理通常运行 10 分钟

2.需要外部电源

3.通过 Wi-Fi 或 PC 连接建立网络连接

4.电池电量高于 90%

5.设备屏幕锁定

6.非活动手机呼叫

7.不能将网络更改为手机网络

注:如果设备达到了一种状态,即,符合所有需要的条件并且启动了资源密集型代理,那么当设备状态发生更改以至于不符合任何条件时,则会立即终止资源密集型代理。



使用方法:

1、从“文件”菜单中,选择“添加->新项目...”。在“添加新项目”对话框中,选择“Windows Phone 计划任务代理”,保留默认名称 ScheduledTaskAgent1,然后单击“确定”

2、在“解决方案资源管理器”中,单击您的前台应用项目以将其选中。接下来,从“项目”菜单中,选择“添加引用...”。在“添加引用”对话框中,选择“属性”标签。选择代理项目 ScheduledTaskAgent1,然后单击“确定”

3、在 OnInvoke(ScheduledTask) 类中实现的方法。调用成功后应调用NotifyComplete() ,失败应调用Abort() 。

4、以xml方式打开WMAppManifest.xml文件,在Task标签下添加ExtendedTask注册后台带代理:

		<Tasks>
			<DefaultTask Name="_default" NavigationPage="MainPage.xaml"/>
			<ExtendedTask Name="BackgroundTask">
				<BackgroundServiceAgent 
					Specifier="ScheduledTaskAgent"  
					Name="ScheduledTaskAgent1" 
					Source="ScheduledTaskAgent1" 
					Type="ScheduledTaskAgent1.ScheduledAgent" />
			</ExtendedTask>
		</Tasks>

参数:

Specifier:可选AudioPlayerAgent、AudioStreamingAgent 或 ScheduledTaskAgent,声明注册的类型。

Name程序集名称。

Source程序集源文件。

Type程序集入口点的完整类名。


5、接下来,使用ScheduledActionService.Find(name)方法获得指定名称的后台代理。如果对象不为null,则应调用Remove(name)向系统注销此代理。再重新创建一个新的代理,然后调用ScheduledActionService.Add(periodicTask)添加后台代理(注意:如果用户禁用后台代理,则调用Add方法时会引发 InvalidOperationException异常,所以应该将Add方法放在Try块中)


使用ScheduledActionService.LaunchForTest(periodicTaskName, TimeSpan.FromSeconds(60));以在调用该方法一分钟后启动代理。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值