AlarmManager.SetWindow 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | 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 所創建與分享的作品,並依授權條款所描述的使用進行修改。