2016-11-14 74 views
2

我正在尝试注册一个正在进行的后台任务,该任务将使我能够处理来自吐司通知操作的后台事件。我在我的应用程序类创建的OnBackgroundActivated的覆盖,但是当我呼吁我的BackgroundTaskBuilder注册我得到这个异常:在UWP中注册进程中的后台任务

:没有注册(0x80040154的(REGDB_E_CLASSNOTREG)从HRESULT异常)

BackgroundTaskBuilder builder = new BackgroundTaskBuilder() 
{ 
    Name = "myTask" 
}; 
builder.SetTrigger(new ToastNotificationActionTrigger()); 
BackgroundTaskRegistration task = builder.Register(); 

我发现很多解决方案都显示这是因为Package.appxmanifest中入口点的名称不正确。例如here,herehere。但根据this article on msdn,我不应该指定,当我想执行过程中的后台任务的入口点:

对于进程不设置TaskEntryPoint后台活动。将其保留为空将启用默认入口点,即Application对象上名为OnBackgroundActivated()的新受保护方法。

,我要打电话RequestAccessAsync在MSDN,文章指出,但两者documentation和智能表明,它是没有必要的。但是,如果我调用RequestAccessAsync,则会引发相同的异常。

+1

您的注册代码在我的身边,OnBackgroundActivated(BackgroundActivatedEventArgs参数)覆盖实现。您是否在异常详细信息中了解了有关缺失班级的更多信息?它可能有帮助...同时(如果尚未完成),您可以仔细检查OnBackgroundActivated()原型,尝试完全重建和/或尽可能尝试在另一台机器上编译。我怀疑SDK安装有问题... – Vincent

+0

没有内部异常。我只是尝试在另一台电脑上,它运行良好。我试图清理,重建,卸载和重新加载,几次恢复nuget。我能做些什么来使它在我的“主”电脑上工作? –

+1

恐怕你唯一的希望将是从VS安装程序重新安装UWP SDK。 – Vincent

回答

0

该问题是由我使用的Windows Phone模拟器上的操作系统造成的。 Vincent在他的评论中建议,重新安装SDK似乎是解决此问题的正确方法。由于在部署到虚拟设备后发生问题,因此在我的计算机上重新安装SDK显然不起作用。

通过在模拟器上的设备设置中重置手机,我能够在模拟器上成功部署和运行应用程序。