語言

AlarmManager.SetWindow 方法

定義

多載

名稱 Description
SetWindow(AlarmType, Int64, Int64, PendingIntent)

安排一個警報器,在指定時間內送達。

SetWindow(AlarmType, Int64, Int64, String, AlarmManager+IOnAlarmListener, Handler)

setWindow(int, long, long, PendingIntent) 的直接回調版本。

SetWindow(AlarmType, Int64, Int64, String, IExecutor, AlarmManager+IOnAlarmListener)

setWindow(int, long, long, PendingIntent) 的直接回調版本。

SetWindow(AlarmType, Int64, Int64, PendingIntent)

安排一個警報器,在指定時間內送達。

[Android.Runtime.Register("setWindow", "(IJJLandroid/app/PendingIntent;)V", "GetSetWindow_IJJLandroid_app_PendingIntent_Handler")]
public virtual void SetWindow(Android.App.AlarmType type, long windowStartMillis, long windowLengthMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("setWindow", "(IJJLandroid/app/PendingIntent;)V", "GetSetWindow_IJJLandroid_app_PendingIntent_Handler")>]
abstract member SetWindow : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit
override this.SetWindow : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit

參數

type
AlarmType

警報類型。

windowStartMillis
Int64

警報應發出的最早時間(以毫秒計),以相應時鐘單位表示(視警報類型而定)。

windowLengthMillis
Int64

請求的交付時段長度,以毫秒計。 警報會在 後的幾毫秒 windowStartMillis內發出。 請注意,這個參數是 持續時間 ,而非視窗結束的時間戳記。

operation
PendingIntent

警報響起時要執行的動作;通常來自 PendingIntent#getBroadcast IntentSender.getBroadcast()。

屬性

備註

安排一個警報器,在指定時間內送達。 此方法類似於 set(int, long, PendingIntent),但允許應用程式精確控制作業系統調整其傳遞的程度。 此方法讓應用程式即使在警報的及時性要求有限時,也能利用傳遞批次所帶來的電池優化。 注意:從 API Build.VERSION_CODES 開始。S,應用程式不應該在少於 10 分鐘的時間內通過。 如果警報即將響起,系統會盡力調整較小的時段,但無法保證,應用程式預期任何小於 10 分鐘的時段都會被延長至 10 分鐘。 此方法也可用於多個警報間的嚴格排序保證,確保每個警報的視窗不相交。 當不需要精確傳遞時,應用程式應使用標準集合(int、long、PendingIntent)方法。 這樣作業系統就能有最多彈性,減少喚醒和電池消耗。 對於必須在精確指定時間且無法接受變動的警報,應用程式可使用 setExact(int, long, PendingIntent)。

另請參閱:

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

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

適用於

SetWindow(AlarmType, Int64, Int64, String, AlarmManager+IOnAlarmListener, Handler)

setWindow(int, long, long, PendingIntent) 的直接回調版本。

[Android.Runtime.Register("setWindow", "(IJJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V", "GetSetWindow_IJJLjava_lang_String_Landroid_app_AlarmManager_OnAlarmListener_Landroid_os_Handler_Handler", ApiSince=24)]
public virtual void SetWindow(Android.App.AlarmType type, long windowStartMillis, long windowLengthMillis, string? tag, Android.App.AlarmManager.IOnAlarmListener listener, Android.OS.Handler? targetHandler);
[<Android.Runtime.Register("setWindow", "(IJJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V", "GetSetWindow_IJJLjava_lang_String_Landroid_app_AlarmManager_OnAlarmListener_Landroid_os_Handler_Handler", ApiSince=24)>]
abstract member SetWindow : Android.App.AlarmType * int64 * int64 * string * Android.App.AlarmManager.IOnAlarmListener * Android.OS.Handler -> unit
override this.SetWindow : Android.App.AlarmType * int64 * int64 * string * Android.App.AlarmManager.IOnAlarmListener * Android.OS.Handler -> unit

參數

type
AlarmType

int:價值為以下之一:RTC_WAKEUP RTC ELAPSED_REALTIME_WAKEUP ELAPSED_REALTIME

windowStartMillis
Int64

long

windowLengthMillis
Int64

long

tag
String

字串:此值可能是空值。

listener
AlarmManager.IOnAlarmListener

AlarmManager.OnAlarmListener:此值不可能為空值。

targetHandler
Handler

處理者:此值可能是空值。

屬性

備註

setWindow(int, long, long, PendingIntent) 的直接回調版本。 此變體不提供在警報時間到達時發送的 PendingIntent,而是提供一個 OnAlarmListener 實例,並在該時間被調用。 當呼叫程序不再執行任何元件(如 Activity、Service 或 ContentProvider)時,Android 系統可能會取消監聽器式警報,因此請只在目前元件結束後不需要再接收警報時使用這些 API,並且在警報完成時也要取消(OnAlarmListener)。 例如,如果你使用活動中的這些 API,務必在活動結束後取消相應的警報。 如果你在之後還需要收到警報,建議使用 PendingIntent 的 API。 OnAlarmListener onAlarm() 方法會透過指定的目標處理程序呼叫,或如果 targetHandler 參數傳遞 null,則會在應用程式的主迴圈器中呼叫。 注意:從 API Build.VERSION_CODES 開始。S,應用程式不應該在少於 10 分鐘的時間內通過。 如果警報即將響起,系統會盡力調整較小的時段,但無法保證,應用程式預期任何小於 10 分鐘的時段都會被延長至 10 分鐘。

另請參閱:

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

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

適用於

SetWindow(AlarmType, Int64, Int64, String, IExecutor, AlarmManager+IOnAlarmListener)

setWindow(int, long, long, PendingIntent) 的直接回調版本。

[Android.Runtime.Register("setWindow", "(IJJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetWindow_IJJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=34)]
public virtual void SetWindow(Android.App.AlarmType type, long windowStartMillis, long windowLengthMillis, string? tag, Java.Util.Concurrent.IExecutor executor, Android.App.AlarmManager.IOnAlarmListener listener);
[<Android.Runtime.Register("setWindow", "(IJJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetWindow_IJJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=34)>]
abstract member SetWindow : Android.App.AlarmType * int64 * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit
override this.SetWindow : Android.App.AlarmType * int64 * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit

參數

type
AlarmType

int:價值為以下之一:RTC_WAKEUP RTC ELAPSED_REALTIME_WAKEUP ELAPSED_REALTIME

windowStartMillis
Int64

long

windowLengthMillis
Int64

long

tag
String

字串:此值可能是空值。

executor
IExecutor

執行者:此值不可能是空值。

listener
AlarmManager.IOnAlarmListener

AlarmManager.OnAlarmListener:此值不可能為空值。

屬性

備註

setWindow(int, long, long, PendingIntent) 的直接回調版本。 此變體不提供在警報時間到達時發送的 PendingIntent,而是提供一個 OnAlarmListener 實例,並在該時間被調用。 當呼叫程序不再執行任何元件(如 Activity、Service 或 ContentProvider)時,Android 系統可能會取消監聽器式警報,因此請只在目前元件結束後不需要再接收警報時使用這些 API,並且在警報完成時也要取消(OnAlarmListener)。 例如,如果你使用活動中的這些 API,務必在活動結束後取消相應的警報。 如果你在之後還需要收到警報,建議使用 PendingIntent 的 API。 OnAlarmListener onAlarm() 方法將透過指定的目標執行器被呼叫。 注意:從 API Build.VERSION_CODES 開始。S,應用程式不應該在少於 10 分鐘的時間內通過。 如果警報即將響起,系統會盡力調整較小的時段,但無法保證,應用程式預期任何小於 10 分鐘的時段都會被延長至 10 分鐘。

另請參閱:

本頁內容與程式碼範例受內容授權條款所規範。 Java 和 OpenJDK 是 Oracle 和/或其關係企業的商標或注冊商標。

最後更新於 2026-08-03 UTC。

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

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

適用於