AlarmManager.Set 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| Set(AlarmType, Int64, String, AlarmManager+IOnAlarmListener, Handler) |
set(int、long、PendingIntent)的直接回調版本。 |
| Set(AlarmType, Int64, PendingIntent) |
設定鬧鐘。 |
Set(AlarmType, Int64, String, AlarmManager+IOnAlarmListener, Handler)
set(int、long、PendingIntent)的直接回調版本。
[Android.Runtime.Register("set", "(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V", "GetSet_IJLjava_lang_String_Landroid_app_AlarmManager_OnAlarmListener_Landroid_os_Handler_Handler", ApiSince=24)]
public virtual void Set(Android.App.AlarmType type, long triggerAtMillis, string? tag, Android.App.AlarmManager.IOnAlarmListener listener, Android.OS.Handler? targetHandler);
[<Android.Runtime.Register("set", "(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V", "GetSet_IJLjava_lang_String_Landroid_app_AlarmManager_OnAlarmListener_Landroid_os_Handler_Handler", ApiSince=24)>]
abstract member Set : Android.App.AlarmType * int64 * string * Android.App.AlarmManager.IOnAlarmListener * Android.OS.Handler -> unit
override this.Set : Android.App.AlarmType * int64 * string * Android.App.AlarmManager.IOnAlarmListener * Android.OS.Handler -> unit
參數
- type
- AlarmType
智力:警報類型。 價值屬於以下之一:RTC_WAKEUP RTC ELAPSED_REALTIME_WAKEUP ELAPSED_REALTIME
- triggerAtMillis
- Int64
長:鬧鐘應該響起的時間(以毫秒計),使用適當的時鐘(視鬧鐘類型而定)。
- tag
- String
字串:描述警報的字串,用於記錄及電池使用歸因。 這個值可能是 Null。
- listener
- AlarmManager.IOnAlarmListener
AlarmManager.OnAlarmListener:OnAlarmListener 實例,當警報時間到達時,其 onAlarm() 方法將被呼叫。 一個特定的 OnAlarmListener 實例只能成為一個待處理警報的目標,就像一個 PendingIntent 一次只能同時使用一個警報一樣。 這個值不可能為零值。
- targetHandler
- Handler
處理器:執行監聽者 onAlarm() 回調或 null 的處理器,用於在主迴圈器上執行該回呼。
- 屬性
備註
set(int、long、PendingIntent)的直接回調版本。 此變體不提供在警報時間到達時發送的 PendingIntent,而是提供一個 OnAlarmListener 實例,並在該時間被調用。 當呼叫程序不再執行任何元件(如 Activity、Service 或 ContentProvider)時,Android 系統可能會取消監聽器式警報,因此請只在目前元件結束後不需要再接收警報時使用這些 API,並且在警報完成時也要取消(OnAlarmListener)。 例如,如果你使用活動中的這些 API,務必在活動結束後取消相應的警報。 如果你在之後還需要收到警報,建議使用 PendingIntent 的 API。 OnAlarmListener 的 onAlarm() 方法會透過指定的目標處理器呼叫,或若 null 作為 targetHandler 參數,則在應用程式的主迴圈器中呼叫。
Android 參考資料。android.app.AlarmManager.set
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
Set(AlarmType, Int64, PendingIntent)
設定鬧鐘。
[Android.Runtime.Register("set", "(IJLandroid/app/PendingIntent;)V", "GetSet_IJLandroid_app_PendingIntent_Handler")]
public virtual void Set(Android.App.AlarmType type, long triggerAtMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("set", "(IJLandroid/app/PendingIntent;)V", "GetSet_IJLandroid_app_PendingIntent_Handler")>]
abstract member Set : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit
override this.Set : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit
參數
- type
- AlarmType
警報類型。
- triggerAtMillis
- Int64
以毫秒計時,使用相應的鬧鐘(視鬧鐘類型而定)。
- operation
- PendingIntent
警報響起時要執行的動作;通常來自 PendingIntent#getBroadcast
IntentSender.getBroadcast()。
- 屬性
備註
設定鬧鐘。 注意:對於計時操作(tick、timeouts 等),使用 Handler 會更簡單且更有效率。 如果同一 IntentSender 已經排程了警報,該先前警報會先被取消。 如果指定的觸發時間過去,警報會立即觸發。 如果已經排程了這個意圖的警報(兩個意圖的相等由 Intent.filterEquals 定義),那麼它會被移除並由這個警報取代。 警報是一個意圖廣播,會傳送到你用 Context.registerReceiver(BroadcastReceiver, IntentFilter)註冊的廣播接收器,或透過 <AndroidManifest.xml 檔案中的接收> 標籤。 警報意圖會以一種稱為 Intent.EXTRA_ALARM_COUNT 的 int 型態資料額外傳送,顯示此意圖廣播中累積了多少過去的警報事件。 因手機休眠而未送達的重複鬧鐘,送達時計數可能超過一。 注意:從 API 19 開始,此方法所傳遞的觸發時間被視為不精確:警報不會在此之前送達,但可能會延後並稍後送達。 作業系統會利用此政策在整個系統中「批次」發送警報,減少裝置需要「喚醒」的次數,並減少電池使用。 一般而言,預定在近期的警報不會被延後,因為預定的警報已排定在遙遠的未來。 隨著新的批次政策實施,送貨訂單的保證不如以往強力。 若應用程式設定多個警報,這些警報的實際配送順序可能與其請求的配送時間順序不符。 如果你的應用程式有強的排序需求,還有其他 API 可以用來取得必要的行為;參見 setWindow(int, long, long, PendingIntent) 與 setExact(int, long, PendingIntent)。 目標 SDK 版本在 API 19 之前的應用程式,仍會維持先前的警報行為:所有排程警報都會被視為精確。
另請參閱:
Android 參考資料。android.app.AlarmManager.set
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。