继续在Windows Phone 8.1中以最小化状态运行函数

时间:2015-08-20 07:21:11

标签: c# windows windows-phone-8.1 windows-phone microsoft-metro

我有一个CreateSchedule()函数,在我打开app时执行。

 private async static Task<int> CreateSchedule()
    {
        try
        {
            DateTime now = DateTime.Now;
            DateTime planTill = now.AddMinutes(15);
            do
            {
                await DoSomeWork();
                now = DateTime.Now;
                await Task.Delay(TimeSpan.FromSeconds(5));
            } while (now < planTill);

            return 1;
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
            return 0;
        }
    }

当应用处于活动状态或处于前台状态时,此功能连续运行(我使用了do-while循环)。但是当我最小化或按下WP上的“后退”或“开始”按钮时,此功能将不再执行。

即使最小化应用程序或按下“开始”或“返回”按钮,也有任何方法可以连续执行该功能。

我尝试过使用BackgroundTask,但这似乎只是在注册时间0-15分钟之间执行,这不是我的要求。

如果我们可以在Windows Phone的后台运行任何线程,请建议一些。

提前致谢!

1 个答案:

答案 0 :(得分:2)

根据设计,您无法在后台运行代码。唯一的选择是BackgroundTask,它有许多限制(必须在锁定屏幕上,每15分钟等),如您所述。

所以简短的回答是你不能。

您可以详细了解后台任务here