【问题标题】:How to turn on the Scheduled Task Agent after it is off by battery saver in WP7?如何在 WP7 中通过省电模式关闭计划任务代理?
【发布时间】:2012-11-15 19:25:35
【问题描述】:

我在我的 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();
        }

    }

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

  • 好的,感谢您提供的有用信息。我想第五个是我想知道的。我们如何设置调度任务的属性以针对给定的编号运行。天?
  • 创建PeriodicAgent类时,有属性Expiration time。我通常使用这个设置上限:ExpirationTime = DateTime.Now.AddDays(14),
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
相关资源
最近更新 更多