个人资料

跳过导航链接首页 > 博客列表 > 博客正文

UWP建立后台任务更新动态磁贴全过程

:

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.相关知识链接

1.在后台任务中更新动态磁贴

2.建立后台任务-官方资料

3.VS打包提示 清单引用了不属于负载的一部分的文件”xx.dll”的解决办法

(the end)

songshizhao
最初发表2017/12/5 23:42:34 最近更新2017/12/5 23:42:34 5440
为此篇作品打分
10