語言

AlarmManager.SetExact 方法

定義

多載

名稱 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 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於