2011-12-04 19 views
3

Androidで目覚まし時計アプリを構築しています。 AlarmManagerはサマータイムと冬の間のクロック変更を自動的に処理しますか、それとも明示的に管理する必要がありますか?Android AlarmManagerは夏時間の変更を処理しますか?

編集:繰り返し間隔がクロックの変化を横切るようにアラームが設定されている場合、そのアラームは再スケジューリングする必要がありますか?

答えて

2

AlarmManager軽い救済の日になります。夏時間情報を考慮して、毎日の開始時にTimezone情報をリセットします。

+0

したがって、毎日アラームを再スケジュールする必要はありませんか? (元の質問の私の編集を参照してください)。 – Leo

+1

AlarmManagerが日の始まりに軽い節約を考慮に入れて再計算するので、うまくいくはずです。 – havexz

+0

偉大な - ありがとう! – Leo

4

私のアプリでは違った動作を見せているとの回答とは対照的に、私は毎晩深夜から数分後にタスクを実行しています。

夏時間の変更後、タスクが午後11時以降数分間実行されたため、タスクが間違った結果を返す(タスクは現在の日付をチェックし、それに応じてクエリを実行します)。

私の答えは - はい、それを明示的に管理する必要があります。

EDIT:私たちのタスクは、指定された時刻に1日1回実行する必要がありました。 この問題を解決するために、アプリケーションが最後に実行された時間を保存し、タスクが再び実行されるたびにそのタイムスタンプをチェックします。 タイムスタンプが24時間でない場合(DSTの変更により23時間または25時間になる可能性があります)、AlarmManagerを中止し、新しいタイムスタンプをスケジュールします。 1年に最大2回の「欠席」があります。

+0

夏時間の変更のために私のアプリも失敗しました。それを管理する方法は? –

+0

私はそれをどのように解決したか私の編集を参照してください。 – marmor

+0

ありがとうmarmor!私は最終的に次のアラームをプログラミングすることでそれを解決し、今度は問題なく動作します:) –

関連する問題