Uwp 我们可以使用应用程序触发器自动调用后台任务吗?

Uwp 我们可以使用应用程序触发器自动调用后台任务吗?,uwp,uwp-xaml,background-task,Uwp,Uwp Xaml,Background Task,我已经使用应用程序触发器在UWP中为后台任务创建了一个应用程序。当我使用按钮手动触发事件时,它正在工作 我想使用应用程序触发器调用应用程序最小化中的后台任务事件。可能吗 我使用以下代码通过单击按钮触发后台任务: public MainPage() { this.InitializeComponent(); this.Button_Click(); } private void Button_Click(object sender, Rou

我已经使用应用程序触发器在UWP中为后台任务创建了一个应用程序。当我使用按钮手动触发事件时,它正在工作

我想使用应用程序触发器调用应用程序最小化中的后台任务事件。可能吗

我使用以下代码通过单击按钮触发后台任务:

 public MainPage()
    {
        this.InitializeComponent();
        this.Button_Click();
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {

        var taskRegistered = false;
        var exampleTaskName = "ExampleBackgroundtask";

        foreach (var task in BackgroundTaskRegistration.AllTasks)
        {
            if (task.Value.Name == exampleTaskName)
            {
                taskRegistered = true;
                break;
            }
        }
        if (!taskRegistered)
        {
            var builder = new BackgroundTaskBuilder();

            builder.Name = exampleTaskName;
            builder.TaskEntryPoint = "Background.ExampleBackgroundtask";
            builder.SetTrigger(new SystemTrigger(SystemTriggerType.TimeZoneChange, false));
            BackgroundTaskRegistration task = builder.Register();
            task.Completed += new BackgroundTaskCompletedEventHandler(OnCompleted);
        }
    }

出于某种原因,您的代码使用
SystemTrigger
进行时区更改,但我认为这只是一个意外的复制粘贴错误

当应用程序最小化时,将在当前的
窗口上调用
VisibilityChanged
事件。您可以注册此事件的处理程序并在那里启动后台任务:

Window.Current.VisibilityChanged += (sender, e) => 
{
    if (!e.Visible)
    {
        //minimized, register background task
    }
};