1

我在我的 WP7 应用程序中添加了计划任务代理来定期提醒。在 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();
        }

    }
4

1 回答 1

3

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

  • 您已在后台任务设置中手动禁用它
  • 它连续两次在异常中崩溃
  • 连续多次超过最大运行时间(~20s)
  • 它使用了比可用内存更多的内存(WP7 上的内存上限为 6MB,WP8 上的内存上限为 11MB)
  • 在调度任务时,您还设置了它应该运行多长时间的属性,在此之后它不会再次启动。在 WP7 上,后台任务会在 14 天后自动停止运行。
于 2012-11-16T08:24:02.220 回答