AlarmManager.SetExactAndAllowWhileIdle メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| Name | 説明 |
|---|---|
| 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 秒間追加され、アプリケーションが作業を完了するためのウェイク ロックをさらに取得できるようになります。
これらのアラームは、アイドル時のデバイスの電力使用量に大きな影響を与える可能性があるため (そのため、アプリのスケジュール設定に対してバッテリの重大な責任が生じる)、注意して使用する必要があります。 不正使用を減らすために、特定のアプリケーションでこれらのアラームがオフになる頻度には制限があります。 通常のシステム操作では、これらのアラームは約毎分以上ディスパッチされません(その時点で、保留中のすべてのアラームがディスパッチされます)。低電力アイドル モードの場合、この期間は 15 分など、大幅に長くなる可能性があります。
他のアラームとは異なり、システムは、同じアプリからのアラームであっても、他のアラームと順不同に発生するように、このタイプのアラームを自由に再スケジュールすることができます。 これは、デバイスがアイドル状態の場合に明らかに発生します (このアラームはアイドル中にオフになる可能性があるため、アプリの他のアラームが後で保持される場合)、アイドル状態でない場合でも発生する可能性があります。 アプリケーションがこの動作を選択しているため、OS では通常の正確なアラームよりも、これらのアラームをスケジュールする柔軟性が高まる点に注意してください。 デバイスがアイドル状態になると、バッテリ寿命を最適化するために、スケジュール設定がさらに解放される可能性があります。
注: Build.VERSION_CODES以降。S、SDK レベル 31 以上を対象とするアプリは、アプリがバッテリ制限から除外されない限り、この API を使用するためのSCHEDULE_EXACT_ALARMアクセス許可を要求する必要があります。 ユーザーとシステムは、[設定] の特別なアプリ アクセス画面を使用して、このアクセス許可を取り消すことができます。 注: 正確なアラームは、ユーザー向けの機能にのみ使用してください。 詳細については、「正確なアラームのアクセス許可」を参照してください。 この API を介してスケジュールされたアラームは、アプリがバックグラウンドにある場合でもフォアグラウンド サービスを開始できます。
関連項目も参照:
android.app.AlarmManager.setExactAndAllowWhileIdleの Android リファレンス。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
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
ログとバッテリー属性でこのアラームを識別するために使用される文字列タグ。 この値は null にすることはできません。
- executor
- IExecutor
リスナーの onAlarm() コールバックを実行する Executor。 この値は null にすることはできません。
- listener
- AlarmManager.IOnAlarmListener
アラーム時刻に達すると onAlarm() メソッドが呼び出される OnAlarmListener インスタンス。 この値は null にすることはできません。
- 属性
注釈
setExact(int,long,String,OnAlarmListener,Handler) と同様ですが、システムが低電力アイドル モードの場合でも、このアラームの実行が許可されます。
呼び出し元のプロセスで Activity、Service、ContentProvider などのコンポーネントが実行されなくなった場合は、リスナー ベースのアラームが Android システムによって取り消される可能性があるため、現在のコンポーネントが完了した後にアラームを受信する必要がない場合にのみこれらの API を使用し、その場合はキャンセル (OnAlarmListener) を行ってください。 たとえば、アクティビティからこれらの API を使用する場合は、アクティビティの終了時にそれぞれのアラームを取り消してください。 その後もアラームを受信する必要がある場合は、PendingIntent ベースの API を使用します。
android.app.AlarmManager.setExactAndAllowWhileIdleの Android リファレンス。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。