2016-09-20 14 views
-1

私のアプリケーションでは、特定の時間帯に定期的なアラームをトリガーして、いくつかの条件をチェックし、必要に応じてユーザーに通知します。Androidは過去に設定されたアラームを処理する方法

私はアラームをスケジュールするには、次のコードを使用しています:

Calendar cal = ...; 
... 

mAlarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, mAlarmIntent); 

(私はaccidentially calに間違った日だったので)私は今calは、いくつかの日だった場合、アラームがすぐにトリガーされることに気づきました/過去の時間。

2016-09-20 18:00:00と言い、2016-09-20 17:00:00のアラームをスケジュールするとしましょう。私はすぐに(またはアラームをスケジュールした後、数秒後に)通知を受けるだろう。 2016-09-20 18:15:00のように将来のアラームをスケジュールすると、これは起こりません。

だから私の質問は以下のとおりです。

  1. は逃したアラームに追いつく常にAndroidのでしょうか?
  2. アラームは毎日再送信される予定です。明日は17:00:00でそれを繰り返すのでしょうか、またはそれはアラームが最後にトリガーされたときだったので、それは18:00:00になりますか?

答えて

2

Androidは、逃したアラームに常に追いつくのですか?

設定された時間が過去のものである場合は、できるだけ早くアンドロイドトリガーアラームが発生します。 check the docs

アラームは毎日repreatが予定されています。明日 17:00:00にそれを繰り返すのでしょうか、またはそれは アラームが最後にトリガされたときだったので、18:00:00になりますか?

それは追加情報

時間にトリガされます次の時間:使用明確なアプリデータ場合、またはユーザーがもう一度あなたのアプリを開くまで、アラームがトリガされませんアプリケーションマネージャから近いあなたのアプリを強制的にプラス再起動することもできます。

+1

私が望んでいたことを確認していただきありがとうございます。私はこれを読むことができるドキュメントへのリンクはありますか? –

+0

公式のドキュメントリンクをチェックすると、あなたが望むすべての詳細が表示されます。@ Thorsten Dittmar –

+1

「ブートが完了しました」ブロードキャストを聞くので、アラームが正しく再開されます。 –

関連する問題