PowerManager (電力サービス)
このセクションの紹介:
このセクションでは、Android が提供するシステム サービス - PowerManager (電源サービス) について説明します。 CPU の実行とキーボードまたは画面の点灯を管理します。ただし、必要な場合を除き、このクラスを使用しないでください。 使用後は必ず時間内に解除してください。この B については、根底にあるものが関係しているため、このセクションではあまり深く説明しません。 今後さらに深く勉強する必要があること ~ このセクションでは主にいくつかの基本的な概念、PowerManager、wakelock について紹介します。 ロック機構など!
公式 API ドキュメント: PowerManager
1. PowerManager とは
2. ウェイクロック ロックの紹介Android システムによって提供される電源管理用の API は、デバイスのバッテリー寿命と密接に関係しています。 公式はまた、絶対に必要な場合を除き、このクラスの使用を避け、使用後は時間内に解放するように努めるべきだとも述べています。いわゆる電源管理には、CPU の実行、キーボードまたは画面の点灯が含まれます。
ウェイクロックロックの仕組みは、このロックを保持している限り、 この場合、システムはスリープ状態に入ることができず、ユーザー モード プログラムまたはカーネルによってスリープ状態に入ることができます。ロックは「タイムアウト付き」または 「タイムアウトなし」、時間が経過すると、タイムアウト ロックは自動的にロック解除されます。ロックまたはタイムアウトがない場合、カーネルはスリープ メカニズムを開始してスリープに入ります。
。
PowerManager.WakeLock3. PowerManager の使い方2 つの状態: locked と unlocked があり、ロックには 2 つの形式があります: ①
永続的にロックこの種のロックは、明示的に解放されない限りロックは解除されません。細心の注意を払って使用する必要があります。 ②
タイムアウト ロックは、時間が経過するとロックが解除されます。 WakeLock を作成すると、2 つのロック メカニズムがあります: ①非カウント ロック メカニズム、②カウント ロック メカニズム (デフォルト) を渡すことができます setReferenceCounted (boolean) value) を指定する場合の違いは次のとおりです。 前者では、acquire()を何度使っても、一度release()をすればロックを解除できます。 後者には (--count == 0) が必要で、(count == 0) の場合にもロックに適用されます。 したがって、WakeLockのカウントメカニズムは、本当の意味でリクエストごとにロックを適用/解放するものではありません。 同じロックが適用/解放されたの回数を数えてから、先に進みましょう。
追伸:より深い内容については、基礎となる内容に関わるものであり、著者のレベルは限られており、私はまだそのレベルに達していません。 ここでは詳しく説明しません。必要に応じて、後で別の記事を書きます。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock w1 = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "MyTag");
w1.acquire();
//在这个过程,屏幕会保持光亮!
w1.release();
上記の最初のフラグ
newWakeLock ( ) マーク 、これらのマークはさまざまな程度でシステム電力に影響を与えます 。 これらのタグは排他的であり、一度に 1 つだけ指定できます。 PARTIAL_WAKE_LOCK: CPU を実行したままにすると、画面とキーボードのライトがオフになる場合があります。 SCREEN_DIM_WAKE_LOCK: CPU を実行し続け、画面表示を維持できますが、灰色になる場合があります。キーボード ライトをオフにすることができます SCREEN_BRIGHT_WAKE_LOCK: CPU を実行し続け、画面を強調表示したままにし、回転を許可しますキーボード ライトをオフにします FULL_WAKE_LOCK : CPU を実行し続け、画面を強調表示したままにし、キーボード ライトも明るいままにします ps: 部分的なウェイクロックを使用している場合 (PARTIAL_WAKE_LOCK フラグを使用)、 CPUは引き続き動作しますが、
電源ボタンを押してもタイマーは無視されます。他のウェイクロックのケースでは、CPU は引き続き実行されますが、ユーザーは引き続き実行されます。
ただし、電源ボタンを押してデバイスをスリープ状態にすることができます。あるいは、3 つ以上のマーカーを使用することもできますが、それらは画面の動作にのみ影響します。
PARTIAL_WAKE_LOCKと併用しても効果はありません。 画面ロック解除パラメータ: ACQUIRE_CAUSES_WAKEUP: 通常のウェイクロックでは、実際には照明がオンになりません。代わりに、一度開くと常に残ります。
(ユーザーの来世での活動など) を維持します。 wakelock が取得されると、このフラグにより画面やキーボードがすぐにオンになります。 典型的な使用法は、ユーザーにとって重要な通知をすぐに確認することです。 ON_AFTER_RELEASE: このフラグが設定されている場合、ウェイクロックが解放されるとユーザー アクティビティ タイマーがリセットされ、ライトが点灯します。
一定期間継続します。 wacklock 状態でループする場合、これを使用してちらつきを減らすことができます 電源操作を実行するには、アプリが電源管理を設定する権限を持っていることを AndroidManifest.xml で宣言する必要があります: 以下も必要になる場合があります: さらに、WakeLock の設定は、アプリケーション アプリケーション全体ではなく、アクティビティ レベル で行われます。 さて、このセクションでは PowerManager (電力サービス) を紹介しますが、これは単なる一般的な科学であり、その内容についても言及しています
やむを得ない場合はこのクラスを使用しないでください。理解できるかどうかは関係ありません。とにかく知ってください。 4. 必要な権限
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.DEVICE_POWER"/>
このセクションの概要: