Windows Phone 8.1后台任务:调试时崩溃

时间:2015-04-21 07:41:11

标签: windows-phone-8.1

我正在尝试开发我的后台任务,它只是更新Windows Phone中磁贴上的徽章。

我认为我已正确实现了所有内容,但是当我在调试模式下触发后台任务时,应用程序就会崩溃。

这是我的代码:

背景类

 public sealed class TileBadgeUpdate : IBackgroundTask
{
    public void Run(IBackgroundTaskInstance taskInstance)
    {
        BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
        updateBadge();
        deferral.Complete();
    }

    private void updateBadge()
    {
        var badgeXML = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);
        var badge = badgeXML.SelectSingleNode("/badge") as XmlElement;
        badge.SetAttribute("value", "20");
        var badgeNotification = new BadgeNotification(badgeXML);
        BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeNotification);
    }

我在其中一个页面的“OnNavigatedTo”中注册了后台任务。我可以成功调试此代码:

        foreach (var task in BackgroundTaskRegistration.AllTasks)
        {
            task.Value.Unregister(true);
        }

        var builder = new BackgroundTaskBuilder();
        builder.Name = "NewBGTask";
        builder.TaskEntryPoint = "POCTimesheetEntry.TileBadgeUpdate";
        builder.SetTrigger(new TimeTrigger(15, false));
        var ret = builder.Register();

在AppxManifest中

我已注册后台任务:

Declaration

我做错了什么?

提前致谢

马修

1 个答案:

答案 0 :(得分:0)

  1. 检查您是否单独创建了BackgroundTask(Windows运行时组件)项目。 在WINDOWS PHONE 8.1应用程序中创建背景任务时,您必须创建单独的项目作为WINDOWS组件

  2. 查看您是否忘记添加项目 项目 项目的参考

  3. 在我的情况下,我忘了添加后台任务项目的引用,因此geofencetask.Completed没有被调用。