asi*_*tis 2 c# windows-phone-8 windows-phone-8.1
我正在尝试在我的项目中实施后台任务。所以我添加了一个Windows Runtime Component Project并从我的 main 中引用了它Windows Phone 8.1 silverlight project。但是当我调用下面的函数时,我得到了一个异常
“在 mscorlib.ni.dll 中发生了“System.Exception”类型的第一次机会异常。附加信息:未注册类(来自 HRESULT 的异常:0x80040154 (REGDB_E_CLASSNOTREG))”
// Applications must have lock screen privileges in order to receive raw notifications
BackgroundAccessStatus backgroundStatus = await BackgroundExecutionManager.RequestAccessAsync();
// Make sure the user allowed privileges
if (backgroundStatus != BackgroundAccessStatus.Denied && backgroundStatus != BackgroundAccessStatus.Unspecified)
{
OpenChannelAndRegisterTask();
}
else
{
// This event comes back in a background thread, so we need to move to the UI thread to access any UI elements
Dispatcher.BeginInvoke(() =>
{
Debug.WriteLine("Lock screen access is denied");
});
}
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?后来我创建了一个示例 Windows 手机项目,上面的代码工作正常。这个奇怪的问题的原因是什么?
如果您有任何线索,请帮助我解决此问题。
后台任务必须在 Package.appxmanifest使用它们的类名。
双击您的appxmanifest文件,进入声明并确保您已经 a) 在那里声明了后台任务,并且 b) 它NamespaceName.BackgroundTaskClassName在Entry point下输入了更正的类名(如)。
RequestAccessAsync 因为我忘记注册我的后台任务,所以我失败了,你得到的错误消息完全相同。
(针对 Windows 10 而不是 8(.1) 的读者请注意:Frank Sposaro 的回答不再适用于 Windows 10,因为他提供了正确的MSDN 链接文档。)
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |