AlarmManager.SetExactAndAllowWhileIdle 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent) |
像 |
| SetExactAndAllowWhileIdle(AlarmType, Int64, String, IExecutor, AlarmManager+IOnAlarmListener) |
類似 setExact(int, long, String, OnAlarmListener, Handler),但即使系統處於低功耗閒置模式,這個警報仍被允許執行。 |
SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)
像 #setExact(int, long, PendingIntent),但即使系統處於低功耗閒置狀態,這個警報仍會被允許執行。
[Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLandroid/app/PendingIntent;)V", "GetSetExactAndAllowWhileIdle_IJLandroid_app_PendingIntent_Handler", ApiSince=23)]
[Android.Runtime.RequiresPermission("android.permission.SCHEDULE_EXACT_ALARM")]
public virtual void SetExactAndAllowWhileIdle(Android.App.AlarmType type, long triggerAtMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLandroid/app/PendingIntent;)V", "GetSetExactAndAllowWhileIdle_IJLandroid_app_PendingIntent_Handler", ApiSince=23)>]
[<Android.Runtime.RequiresPermission("android.permission.SCHEDULE_EXACT_ALARM")>]
abstract member SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit
override this.SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit
參數
- type
- AlarmType
警報類型。
- triggerAtMillis
- Int64
以毫秒計時,使用相應的鬧鐘(視鬧鐘類型而定)。
- operation
- PendingIntent
警報響起時要執行的動作;通常來自 PendingIntent#getBroadcast
IntentSender.getBroadcast()。
- 屬性
備註
類似 setExact(int, long, PendingIntent),但即使系統處於低功耗閒置狀態,這個警報仍會被允許執行。 如果你不需要精確排程鬧鐘,但仍需要在閒置時執行,可以考慮使用 setAndAllowWhileIdle(int, long, PendingIntent)。 這類警報只能用於必須在閒置時觸發警報的情況——一個合理的例子是行事曆通知,應該發出聲音讓使用者能察覺。 警報發出後,應用程式也會被加入系統的臨時電力豁免清單,約 10 秒,讓該應用程式能取得更多喚醒鎖以完成工作。
這些警報在閒置時會大幅影響裝置的電力使用(因此會造成 App 設定的電池問題),因此使用時應謹慎。 為了減少濫用,針對特定應用程式,這些警報的觸發頻率有限制。 在正常系統運作下,這些警報不會超過每分鐘(此時每個待處理的警報都會被發出);在低功耗閒置模式下,這個持續時間可能明顯更長,例如15分鐘。
與其他警報不同,系統可自由重新排程,使其與其他警報(即使是同一應用程式的警報)不同步。 這種情況明顯會在裝置閒置時發生(因為這個鬧鐘可能會在閒置時響起,而其他 App 的鬧鐘會暫時擱置),但即使沒閒置也可能發生。 請注意,作業系統會允許自己比一般精確警報更靈活地排程這些警報,因為應用程式已選擇此行為。 當裝置閒置時,可能會對排程做更多自由,以優化電池續航。
注意:從Build.VERSION_CODES開始。S,針對 SDK 等級 31 或以上的應用程式需要申請 SCHEDULE_EXACT_ALARM 權限才能使用此 API,除非該應用程式免於電池限制。 使用者和系統可以透過設定中的特殊應用程式存取畫面撤銷此權限。 注意:精確警報應僅用於面向使用者的功能。 更多細節請參見精確警報權限。 透過此 API 排程的鬧鐘,即使應用程式在背景,仍可啟動前景服務。
另請參閱:
Android 參考資料。android.app.AlarmManager.setExactAndAllowWhileIdle
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
SetExactAndAllowWhileIdle(AlarmType, Int64, String, IExecutor, AlarmManager+IOnAlarmListener)
類似 setExact(int, long, String, OnAlarmListener, Handler),但即使系統處於低功耗閒置模式,這個警報仍被允許執行。
[Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetExactAndAllowWhileIdle_IJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=37)]
public virtual void SetExactAndAllowWhileIdle(Android.App.AlarmType type, long triggerAtMillis, string tag, Java.Util.Concurrent.IExecutor executor, Android.App.AlarmManager.IOnAlarmListener listener);
[<Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetExactAndAllowWhileIdle_IJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=37)>]
abstract member SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit
override this.SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit
參數
- type
- AlarmType
警報類型。 價值屬於以下之一:RTC_WAKEUP;RTC;ELAPSED_REALTIME_WAKEUP;ELAPSED_REALTIME
- triggerAtMillis
- Int64
警報應發出的精確時間(毫秒),以相應時鐘單位表示(視警報類型而定)。
- tag
- String
一個串標籤用來識別日誌中的警報和電池歸屬。 這個值不可能為零值。
- executor
- IExecutor
執行者,執行監聽者 onAlarm() 回調的執行者。 這個值不可能為零值。
- listener
- AlarmManager.IOnAlarmListener
OnAlarmListener 實例,當警報時間到達時會呼叫其 onAlarm() 方法。 這個值不可能為零值。
- 屬性
備註
類似 setExact(int, long, String, OnAlarmListener, Handler),但即使系統處於低功耗閒置模式,這個警報仍被允許執行。
當呼叫程序不再執行任何元件(如 Activity、Service 或 ContentProvider)時,Android 系統可能會取消監聽器式警報,因此請只在目前元件結束後不需要再接收警報時使用這些 API,並且在警報完成時也要取消(OnAlarmListener)。 例如,如果你使用活動中的這些 API,務必在活動結束後取消相應的警報。 如果你在之後還需要收到警報,建議使用 PendingIntent 的 API。
Android 參考資料。android.app.AlarmManager.setExactAndAllowWhileIdle
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。