2016-11-14 106 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顯然不起作用。

通過在模擬器上的設備設置中重置手機,我能夠在模擬器上成功部署和運行應用程序。