我正在尝试开发我的后台任务,它只是更新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中
我已注册后台任务:
我做错了什么?
提前致谢
马修
答案 0 :(得分:0)
检查您是否单独创建了BackgroundTask(Windows运行时组件)项目。 在WINDOWS PHONE 8.1应用程序中创建背景任务时,您必须创建单独的项目作为WINDOWS组件
查看您是否忘记添加项目 项目 项目的参考。
在我的情况下,我忘了添加后台任务项目的引用,因此geofencetask.Completed没有被调用。