我需要在每次系统登录时读取注册表以确定是否启动通知。所以我不得不创建一个进程外的后台任务SystemTriggerType.SessionConnected
来做到这一点。后台任务实现看起来像这样:
public async void Run(IBackgroundTaskInstance taskInstance)
{
Task launchFullTrust = LaunchFullTrustProcessForCurrentAppAsync(); //Windows.ApplicationModel.FullTrustProcessLauncher as an async task
launchFullTrust.Wait();
BackgroundTaskDeferral appServiceDeferral = taskInstance.GetDeferral();
AppServiceTriggerDetails details = taskInstance.TriggerDetails as AppServiceTriggerDetails;
Connection = details.AppServiceConnection; // AppServiceConnection object
...
// perform data acquisition
}
但是因为这个后台进程是由会话连接触发的,所以保证taskInstance
不会包含AppServiceTriggerDetails
,或者任何与之相关的东西AppServiceTrigger
。考虑到这一点,有没有办法AppServiceConnection
从后台任务而不是从 UWP 应用程序本身接收连接句柄?