語言

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()。

屬性

備註

安排重複警報。 注意:對於計時操作(tick、timeouts 等),使用 Handler 會更簡單且更有效率。 如果同一 IntentSender 已經排定了警報,該警報會先被取消。 類似於設定(int、long、PendingIntent),但你也可以設定一個週期,讓鬧鐘自動重複。 這個警報會持續重複,直到被 cancel(OnAlarmListener) 明確移除為止。 如果標示的觸發時間在過去,警報會立即觸發,警報數量會依觸發時間相對於重複間隔的過去距離而定。 若警報延遲(例如系統睡眠,非_WAKEUP警報類型),跳過的重播會盡快傳送。 之後,未來的警報將依照原定時程發送;它們不會隨時間漂移。 例如,如果你設定了每個整點的定期鬧鐘,但手機從7:45到8:45都處於休眠狀態,手機一喚醒就會發出鬧鐘,接著下一個鬧鐘會在9:00發出。 如果你的應用程式希望讓送達時間漂移,以確保至少一定的時間間隔會發生警報,那麼建議使用一次性鬧鐘,並在處理每次鬧鐘時自己排程下一次鬧鐘。 注意:自 API 19 起,所有重複警報皆不精確。 如果您的應用程式需要精確的交付時間,則必須使用一次性精確警報,並依上述方式重新排程。 目標Sdk版本早於API 19的舊有應用程式,將持續將所有警報,包括重複警報,視為精確處理。 針對Build.VERSION_CODES的應用程式。如果 S 想讓觸發Intent.EXTRA_ALARM_COUNT時提供警報數量,就必須在用於設定這個警報的 PendingIntent 上設置旗標PendingIntent.FLAG_MUTABLE。

另請參閱:

Android 參考資料。android.app.AlarmManager.setRepeating

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於