【发布时间】:2018-01-18 16:56:30
【问题描述】:
我在此链接之后创建了一个带有进程外后台任务的 UWP 应用
out of process background task
这是我的后台任务
namespace MyTask
{
public sealed class FirstTask : IBackgroundTask
{
private BackgroundTaskDeferral backgroundTaskDeferral;
public void Run(IBackgroundTaskInstance taskInstance)
{
DefaultLaunch();
}
async void DefaultLaunch()
{
// The URI to launch
var uriBing = new Uri("mytempapp://test");
try
{
// Launch the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriBing); // Throws Error
}
catch (Exception e)
{
}
}
}
}
此后台任务在时区更改上激活,效果很好
BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder { Name = "FirstTask", TaskEntryPoint = "MyTask.FirstTask" };
taskBuilder.SetTrigger(new SystemTrigger(SystemTriggerType.TimeZoneChange, false));
BackgroundTaskRegistration myFirstTask = taskBuilder.Register();
问题是调用 DefaultLaunch() 时会引发错误。理想的情况是它应该打开我使用 URI 方案注册的应用程序
System.Runtime.InteropService.COMException(0x80070578) invalid window Handler
This API must be called from a thread with a CC
【问题讨论】:
-
您可以在其他触发器上启动另一个后台任务。无法从后台任务启动应用程序。