3

このプラットフォームについて学ぶために、Windows Phone OS 7.1 用のアプリを作成しています。アラーム アプリを作成しているときに、この奇妙なエラーに直面しました。ScheduledActionService.Add(myAlarm) を使用してアラームを設定すると、選択した時間にアラームが鳴りません。beginTime = now + 10 秒を設定してから、2 分間待機しましたが運が悪かったです。ただし、実行時に別のアラームを追加すると、最後のアラームの選択した時間が経過すると、最後のアラームが鳴ります。

以下は、私の createAlarm 関数のコードです。いくつかの検索を行いましたが、解決策が見つかりませんでした。

        private void createAlarm(double time, string message)
    {
        var myAlarm = new Alarm(System.Guid.NewGuid().ToString())
        {
            Content = message,
            BeginTime = DateTime.Now.AddSeconds(time),
            ExpirationTime = DateTime.Now.AddSeconds(time + 10.0)
        };

        myAlarm.Sound = new Uri("/Sounds/02 Ha Trang.mp3", UriKind.Relative);
        myAlarm.RecurrenceType = RecurrenceInterval.None;

        ScheduledActionService.Add(myAlarm);
    }
4

1 に答える 1

1

これは既知の問題です。アラームは 30 秒の精度で鳴ります。リマインダーの場合も同様です。実際には正確な結果が得られる場合もありますが、全体として、アラームやリマインダーを頻繁に表示することは信頼できません。精度が低いのは、おそらくリソース消費を低く抑えるためです。(アラームはバックグラウンドで動作することを忘れないでください。) 最初のアラームは、2 番目のアラームが設定されたときに発生します。これは、システムがアラームの期限がすでに過ぎていることを突然「認識する」ためです。それらを少なくとも 1 分で区切ることをお勧めします。

一方、非常に短い間隔でビープ音を鳴らす必要がある場合は、タイマーのような「フォアグラウンド」のものを使用する必要があります。

于 2013-01-27T20:15:56.340 に答える