次の方法で共有


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

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

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

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください

  • 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)