AlarmManager.SetRepeating(AlarmType, Int64, Int64, PendingIntent) メソッド

定義

繰り返しアラームをスケジュールします。

[Android.Runtime.Register("setRepeating", "(IJJLandroid/app/PendingIntent;)V", "GetSetRepeating_IJJLandroid_app_PendingIntent_Handler")]
public virtual void SetRepeating (Android.App.AlarmType type, long triggerAtMillis, long intervalMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("setRepeating", "(IJJLandroid/app/PendingIntent;)V", "GetSetRepeating_IJJLandroid_app_PendingIntent_Handler")>]
abstract member SetRepeating : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit
override this.SetRepeating : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit

パラメーター

type
AlarmType

アラームの種類。

triggerAtMillis
Int64

(アラームの種類に応じて) 適切なクロックを使用して、アラームを最初にオフにする時間 (ミリ秒単位)。

intervalMillis
Int64

続いてアラームが繰り返されるまでの間隔をミリ秒単位で指定します。

operation
PendingIntent

アラームがオフになったときに実行するアクション。通常は から PendingIntent#getBroadcast IntentSender.getBroadcast()取得されます。

属性

注釈

繰り返しアラームをスケジュールします。 <b>注: タイミング操作 (ティック、タイムアウトなど) の場合は、 を使用 android.os.Handlerする方が簡単で効率的です。</b> 同じ IntentSender に対して既にアラームがスケジュールされている場合は、最初にキャンセルされます。

と同様 #setに、アラームが自動的に繰り返される期間を指定することもできます。 このアラームは、 で明示的に削除されるまで繰り返し #cancel続けます。 指定されたトリガー時間が過去の場合、トリガー時間が繰り返し間隔に対して相対的な過去の距離に応じてアラーム数で、アラームが直ちにトリガーされます。

アラームが遅延した場合 (たとえば、_WAKEUP以外のアラームタイプの場合など)、スキップされた繰り返しはできるだけ早く配信されます。 その後、将来のアラームは元のスケジュールに従って配信されます。時間の経過と同時にドリフトすることはありません。 たとえば、1 時間ごとに上部に定期的なアラームを設定したが、電話が 7:45 から 8:45 まで眠っていた場合、電話機が目覚めたらすぐにアラームが送信され、次のアラームは 9:00 に送信されます。

アプリケーションで、少なくとも一定の時間間隔がアラーム間で常に経過することを保証するために配信時間をドリフトさせる必要がある場合は、1 回限りのアラームを使用して、各アラーム配信を処理するときに次のアラームを自分でスケジュールします。

<p class="note"><b>注:</b> API 19 の時点では、すべての繰り返しアラームは不正確です。 アプリケーションで正確な配信時間が必要な場合は、1 回限り正確なアラームを使用し、上記のように毎回スケジュールを変更する必要があります。 API 19 より前のレガシ アプリケーション targetSdkVersion では、繰り返しアラームを含むすべてのアラームが引き続き正確に処理されます。

アプリのBuild.VERSION_CODES#Sターゲット設定では、キー でアラーム数をPendingIntent指定する場合は、このアラームを設定するために使用されている にフラグPendingIntent#FLAG_MUTABLEIntent#EXTRA_ALARM_COUNT設定する必要があります。

android.app.AlarmManager.setRepeating(int, long, long, android.app.PendingIntent)Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象

こちらもご覧ください

  • Handler
  • <xref:Android.App.AlarmManager.Set(Android.App.AlarmType%2c+System.Int64%2c+System.Int64)>
  • <xref:Android.App.AlarmManager.SetExact(Android.App.AlarmType%2c+System.Int64%2c+System.Int64)>
  • <xref:Android.App.AlarmManager.SetWindow(Android.App.AlarmType%2c+System.Int64%2c+System.Int64%2c+System.Int64)>
  • Cancel(PendingIntent)
  • SendBroadcast(Intent)
  • <xref:Android.Content.Context.RegisterReceiver(Android.Content.BroadcastReceiver%2c+Android.Content.IntentFilter)>
  • FilterEquals(Intent)