我正在使用 BackgroundUploader 上传视频,即使应用程序处于后台,我也需要在上传完成时显示通知。为此,我在上传成功时使用了 toast 通知,它的工作但仅当应用程序处于前台(活动)时才会显示,否则它会在我通过单击激活应用程序时显示。我认为这是因为应用程序状态暂停。我的代码是-
if (response.StatusCode == 200)
{
ToastTemplateType toastTemplate = ToastTemplateType.ToastText01;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
toastTextElements[0].AppendChild(toastXml.CreateTextNode("Video uploaded"));
ToastNotification toast = new ToastNotification(toastXml);
ToastNotificationManager.CreateToastNotifier().Show(toast);
//some more work here
}
现在我正在尝试注册在视频上传完成后显示通知和其他一些小东西的后台任务。
在哪里注册后台任务以及我应该使用什么触发器?
或者是否有任何其他可能的解决方案?
更新-
我正在使用休闲代码向后台任务注册定时器触发器
string name = "UploadSuccess";
bool registered = false;
foreach (var task in BackgroundTaskRegistration.AllTasks)
{
//task.Value.Unregister(true);
if (task.Value.Name.Equals(name))
registered = true;
}
if (registered == false)
{
var builder = new BackgroundTaskBuilder();
builder.Name = name;
builder.TaskEntryPoint = "VideoUploadSuccessTask.UploadSuccess";
TimeTrigger t = new TimeTrigger(15, false);
builder.SetTrigger(t);
//builder.SetTrigger(new SystemTrigger(SystemTriggerType.ServicingComplete, false));
var ret = builder.Register();
}
并且它在调试时工作但从不自动触发:(