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

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

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

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

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

Build.VERSION_CODES#Sを対象とするアプリでは、アラーム数にキー Intent#EXTRA_ALARM_COUNTを指定する場合は、このアラームの設定に使用するPendingIntentにフラグ PendingIntent#FLAG_MUTABLEを設定する必要があります。

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)