ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

c# – 适用于Windows的通用应用程序10.如何触发后台任务?

2019-07-06 14:15:32  阅读:222  来源: 互联网

标签:c notifications win-universal-app background-task


我需要通过按动作按钮从交互式Toast通知触发后台任务.我不知道我做错了什么.我可以注册一个任务,并在visual studio中查看它.即使我可以调试它(debuger跳转到MyToastNotificationBackgroundTask.Run函数,但参数IBackgroundTaskInstance taskInstance是空对象),单击一个按钮永远不会运行任务或至少debuger dos不显示它.

我正在注册这样的后台任务

var builder = new BackgroundTaskBuilder();
builder.Name = "MyToastNotificationBackgroundTask";
builder.TaskEntryPoint = "Tasks.MyToastNotificationBackgroundTask";
builder.SetTrigger(new ToastNotificationActionTrigger());
BackgroundTaskRegistration task = builder.Register();

显示通知

ToastNotifier toastNotifier = ToastNotificationManager.CreateToastNotifier();
ScheduledToastNotification myToastNotificaton = new ScheduledToastNotification(this.myToastXml, DateTime.Now.AddMinutes(1), TimeSpan.FromMinutes(60), 2);
myToastNotificaton .Id = "toast_54ahk36s";
toastNotifier.AddToSchedule(myToastNotificaton);

在app清单中

<Extensions>
    <Extension Category="windows.backgroundTasks" EntryPoint="Tasks.MyToastNotificationBackgroundTask">
      <BackgroundTasks>
        <Task Type="systemEvent" />
      </BackgroundTasks>
    </Extension>
</Extensions>

在吐司模板xml动作按钮是

<actions>
    <input id="message" type="text" placeholderContent="200" />
    <action activationType="background" content="Count" arguments="count" />
</actions>

后台任务itsetf

namespace Tasks
{
    public sealed class MyToastNotificationBackgroundTask : IBackgroundTask
    {
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            var details = taskInstance.TriggerDetails as ToastNotificationActionTriggerDetail;
            ...
        }
    }
}

我无法理解如何在通知模板操作按钮上指定activationype =“background”与MyToastNotificationBackgroundTask任务相关?我无法找到相关信息.

有人请分享你的知识.也许你有一个工作的例子或smf.任何帮助将不胜感激.提前致谢.

解决方法:

I can’t understand how specifying activationype=”background” on a
notification templates action button is relating to
MyToastNotificationBackgroundTask task? i can’t find relevant info on
that.

后台任务(ToastNotificationActionTrigger)的触发器类型是将Toast操作连接到后台任务的内容.当用户点击操作时,app会查找具有ToastNotificationActionTrigger触发器的后台任务,并在找到时运行.

我使用你的代码,但无法重现问题,触发器工作正常.我的猜测是你已经注册了一个具有该名称但没有正确触发器类型的任务(先尝试取消注册) – 或者 – 你在toast xml(activationType字段)中有拼写问题.

标签:c,notifications,win-universal-app,background-task
来源: https://codeday.me/bug/20190706/1397923.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有