如何在WP7中通过节电器关闭后打开计划任务代理?

时间:2012-11-15 19:25:35

标签: c# windows-phone-7 scheduled-tasks

我在WP7应用程序中添加了Scheduled Task Agent以定期提醒。在2-3天后测试时,代理将关闭,即使我打开应用程序并再次启动任务,它也不会再次返回。 以下是我在ScheduledTaskAgent中尝试过的内容:

protected override void OnInvoke(ScheduledTask task)
    {
        DateTime time = DateTime.Now;
        if (time.Hour > 6 && time.Hour < 23)
        {
            getContent();
            if (task.Name.Equals("PeriodicTaskDemo", StringComparison.OrdinalIgnoreCase))
            {
                ShellToast toast = new ShellToast();
                Mutex mutex = new Mutex(true, "ScheduledAgentData");
                mutex.WaitOne();
                IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings;
                toast.Title = setting["ScheduledAgentData"].ToString();
                mutex.ReleaseMutex();
                toast.Content = "You are being notified!!";
                toast.Show();
            }
            NotifyComplete();
        }

    }

1 个答案:

答案 0 :(得分:3)

省电模式不会禁用后台任务重新启动。禁用代理的唯一原因:

  • 您已在后台任务设置中手动禁用它
  • 连续两次在例外情况下坠毁
  • 连续几次超过最大运行时间(~20s)
  • 它使用的内存比可用内存多(WP7为6MB内存,WP8为11MB)
  • 在计划任务时,您还要设置属性应该运行多长时间,此时它不会再次启动。在WP7上,后台任务会在14天后自动停止运行。