AlarmManager.SetExact 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| SetExact(AlarmType, Int64, PendingIntent) |
請安排警報在指定時間準確送達。 |
| SetExact(AlarmType, Int64, String, AlarmManager+IOnAlarmListener, Handler) |
setExact(int, long, PendingIntent) 的直接回調版本。 |
SetExact(AlarmType, Int64, PendingIntent)
請安排警報在指定時間準確送達。
[Android.Runtime.Register("setExact", "(IJLandroid/app/PendingIntent;)V", "GetSetExact_IJLandroid_app_PendingIntent_Handler")]
[Android.Runtime.RequiresPermission("android.permission.SCHEDULE_EXACT_ALARM")]
public virtual void SetExact(Android.App.AlarmType type, long triggerAtMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("setExact", "(IJLandroid/app/PendingIntent;)V", "GetSetExact_IJLandroid_app_PendingIntent_Handler")>]
[<Android.Runtime.RequiresPermission("android.permission.SCHEDULE_EXACT_ALARM")>]
abstract member SetExact : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit
override this.SetExact : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit
參數
- type
- AlarmType
警報類型。
- triggerAtMillis
- Int64
以毫秒計時,使用相應的鬧鐘(視鬧鐘類型而定)。
- operation
- PendingIntent
警報響起時要執行的動作;通常來自 PendingIntent#getBroadcast
IntentSender.getBroadcast()。
- 屬性
備註
請安排警報在指定時間準確送達。 此方法類似 set(int, long, PendingIntent),但不允許作業系統調整傳遞時間。 警報會盡可能準時送達到指定的觸發時間。 注意:只有對精確時間有強烈需求的鬧鐘(例如鬧鐘在指定時間響起)才應被精確排程。 強烈建議應用程式不要不必要地使用精確警報,因為這會降低作業系統降低電池使用的能力。 注意:從Build.VERSION_CODES開始。S,針對 SDK 等級 31 或以上的應用程式需要申請 SCHEDULE_EXACT_ALARM 權限才能使用此 API,除非該應用程式免於電池限制。 使用者和系統可以透過設定中的特殊應用程式存取畫面撤銷此權限。 注意:精確警報應僅用於面向使用者的功能。 更多細節請參見精確警報權限。
另請參閱:
Android 參考資料。android.app.AlarmManager.setExact
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
SetExact(AlarmType, Int64, String, AlarmManager+IOnAlarmListener, Handler)
setExact(int, long, PendingIntent) 的直接回調版本。
[Android.Runtime.Register("setExact", "(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V", "GetSetExact_IJLjava_lang_String_Landroid_app_AlarmManager_OnAlarmListener_Landroid_os_Handler_Handler", ApiSince=24)]
public virtual void SetExact(Android.App.AlarmType type, long triggerAtMillis, string? tag, Android.App.AlarmManager.IOnAlarmListener listener, Android.OS.Handler? targetHandler);
[<Android.Runtime.Register("setExact", "(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V", "GetSetExact_IJLjava_lang_String_Landroid_app_AlarmManager_OnAlarmListener_Landroid_os_Handler_Handler", ApiSince=24)>]
abstract member SetExact : Android.App.AlarmType * int64 * string * Android.App.AlarmManager.IOnAlarmListener * Android.OS.Handler -> unit
override this.SetExact : Android.App.AlarmType * int64 * string * Android.App.AlarmManager.IOnAlarmListener * Android.OS.Handler -> unit
參數
- type
- AlarmType
int:價值為以下之一:RTC_WAKEUP RTC ELAPSED_REALTIME_WAKEUP ELAPSED_REALTIME
- triggerAtMillis
- Int64
long
- tag
- String
字串:此值可能是空值。
- listener
- AlarmManager.IOnAlarmListener
AlarmManager.OnAlarmListener:此值不可能為空值。
- targetHandler
- Handler
處理者:此值可能是空值。
- 屬性
備註
setExact(int, long, PendingIntent) 的直接回調版本。 此變體不提供在警報時間到達時發送的 PendingIntent,而是提供一個 OnAlarmListener 實例,並在該時間被調用。 當呼叫程序不再執行任何元件(如 Activity、Service 或 ContentProvider)時,Android 系統可能會取消監聽器式警報,因此請只在目前元件結束後不需要再接收警報時使用這些 API,並且在警報完成時也要取消(OnAlarmListener)。 例如,如果你使用活動中的這些 API,務必在活動結束後取消相應的警報。 如果你在之後還需要收到警報,建議使用 PendingIntent 的 API。 OnAlarmListener 的 onAlarm() 方法會透過指定的目標處理器呼叫,或若 null 作為 targetHandler 參數,則在應用程式的主迴圈器中呼叫。 在之前的 Android 版本中Build.VERSION_CODES。S和Build.VERSION_CODES。TIRAMISU 中,針對 SDK 等級 31 或以上的應用程式必須持有SCHEDULE_EXACT_ALARM權限才能使用 API,除非該應用程式免於電池限制。 注意:從 Android 版本 Build.VERSION_CODES 開始。UPSIDE_DOWN_CAKE,系統會在呼叫應用程式結束生命週期時,明確移除透過此 API 設定的任何警報。
Android 參考資料。android.app.AlarmManager.setExact
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。