1.新建后台任务runtime运行时组件
在UWP应用程序解决方案中新建项目,项目类型为windows runtime运行时组件,随后命名。如图我的命名为BackgroundTask。
2.添加引用
app引用新建的项目,即backgroundTask项目,即如例子中课程表UWP引用-添加引用-项目-选择backgroundTask
3.在backgroundTask项目中添加代码实现接口
public sealed class Reminder : IBackgroundTask { public void Run(IBackgroundTaskInstance taskInstance) { // Debug.Write("================ debug to show is working ================"); var deferral = taskInstance.GetDeferral(); SetupTileAlert2(); deferral.Complete(); } }
4.在App中添加入口点
入口点即新建项目中实现接口的完整类名
5.运行时注册后台任务
在app运行时注册后台任务,代码如下:
//注册方式,在app启动或者其他页面注册后台任务
await RegisterBackgroundTask("BackgroundTasks.Reminder", "Reminder", new TimeTrigger(30,false), null);
//注册后台任务方法封装
public static async Task<BackgroundTaskRegistration> RegisterBackgroundTask(string taskEntryPoint,
string taskName,
IBackgroundTrigger trigger,
IBackgroundCondition condition)
{
var status = await BackgroundExecutionManager.RequestAccessAsync();
if (status == BackgroundAccessStatus.Unspecified || status == BackgroundAccessStatus.DeniedByUser)
{
return null;
}
foreach (var cur in BackgroundTaskRegistration.AllTasks)
{
if (cur.Value.Name == taskName)
{
cur.Value.Unregister(true);
}
}
var builder = new BackgroundTaskBuilder
{
Name = taskName,
TaskEntryPoint = taskEntryPoint,
};
builder.SetTrigger(trigger);
if (condition != null)
{
builder.AddCondition(condition);
}
BackgroundTaskRegistration task = builder.Register();
return task;
}
6.启动模拟后台任务触发
debug下模拟后台任务触发,其中将后台任务项目中run方法将会响应,测试代码是否能够执行。
7.相关知识链接
3.VS打包提示 清单引用了不属于负载的一部分的文件”xx.dll”的解决办法
(the end)