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

バッテリー セーバーは、バックグラウンド タスクの再起動を無効にしません。エージェントが無効になった唯一の理由:

  • バックグラウンドタスクの設定で手動で無効にしました
  • 例外で2回連続でクラッシュしました
  • 最大実行時間を数回連続で超えました (~20 秒)
  • 利用可能なよりも多くのメモリを使用しました (WP7 では 6MB のメモリ上限、WP8 では 11MB のメモリ上限)。
  • タスクをスケジュールするときは、実行する時間のプロパティも設定します。この時間が経過すると、再び開始されません。WP7 では、バックグラウンド タスクは 14 日後に自動的に停止します。
于 2012-11-16T08:24:02.220 に答える