Windows应用商店后台任务

时间:2015-07-21 13:07:34

标签: c# windows-8 windows-runtime windows-store-apps background-task

我正在尝试测试我的后台任务:

这是我的任务注册:

    protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);

        foreach (var task in BackgroundTaskRegistration.AllTasks)
        {
            task.Value.Unregister(true);
        }
        await BackgroundExecutionManager.RequestAccessAsync();
        var builder = new BackgroundTaskBuilder();
        builder.Name = "MySampleTask";
        builder.TaskEntryPoint = "TestApplication.MyBackgroundTask";
        builder.SetTrigger(new TimeTrigger(15,false));
        var ret = builder.Register();
    }

这是我的BackGround Task类:

namespace TestApplication
{
public sealed class MyBackgroundTask : IBackgroundTask
{
    public void Run(IBackgroundTaskInstance taskInstance)
    {
        FetchDataFromServerAsync();
    }

    public async Task FetchDataFromServerAsync()
    {
        if (Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile() != null)
        {
            HttpClient httpClient = new HttpClient();
            HttpResponseMessage response = await httpClient.GetAsync(@"http://www.inbox.lv");
            response.EnsureSuccessStatusCode();
            string responseBodyAsText = await response.Content.ReadAsStringAsync();
            await FileManager.FlushDataToFileAsync(responseBodyAsText, DateTime.Now.ToString("dd.MM.yyyy_HH.mm.ss") + ".txt");
        }
    }
}

}

这是我的清单:

<Extensions>
    <Extension Category="windows.backgroundTasks" EntryPoint="TestApplication.MyBackgroundTask">
      <BackgroundTasks>
        <Task Type="timer" />
      </BackgroundTasks>
    </Extension>
  </Extensions>

当我通过调试位置触发后台任务时 - 我的应用程序刚关闭,非断点被点击。

1 个答案:

答案 0 :(得分:0)

示例应用程序

Microsoft制作的大量示例应用程序展示了如何使用Windows Store特定的API。后台任务就是其中之一。您可以继续Download all of them on code.msdn.microsoft.comDownload the background task sample only from the site

另一个项目中的后台任务

前段时间我已经阅读了一些关于后台任务的内容,我确实记得提到你需要在另一个项目中完成的任务。实际上,当您打开示例项目并查看解决方案资源管理器时,您可以立即看到情况就是这样。

enter image description here

请注意文件SampleBackgroundTask.vb如何位于Tasks这是第二个项目。

(不要被vb文件吓跑,还有C#样本)

我建议完成后台任务

到目前为止,我已经浏览了多个Windows运行时API示例以完成我的工作,但它们都有效。

我想说你最好的办法是浏览我上面链接的示例应用程序的代码,看看你的代码和样本代码之间有什么不同。

祝你好运。如果您需要更多规格,请发表评论,我可以自己进一步了解后台任务,以帮助您。