0

アプリケーションのユーザーに、を使用して画面を維持できる機能を提供したいと思いますWakeLock。私の主な活動では、次の関数を作成しました。

protected void processWakeLock(int pauseResume) {
   switch (pauseResume) {
   case STATE_RESUME:
      if (mKeepScreenOn) {
         wakeLock.acquire();
      }
      break;
   case STATE_PAUSE:
      if (wakeLock.isHeld()) {
         wakeLock.release();
      }
      break;
   }
}

私は現在、自分のアプリケーションをアクティブに使用していないときにユーザーの電話をロックしないようにしたいので、自分から呼び出してオーバーライドしますonPauseonResume私のアプリケーションには、他に3つのフルスクリーンビューがあります。WakeLock彼らが私のアプリケーションのすべての部分に引き継がれ、それでも彼らの電話の残りの部分に安全であることを保証するための最良の方法は何ですか。

私の最初の考えは、私の活動のそれぞれで同じコードスニペットを複製することですが、それは多くのボイラープレートのように見えます。別のフルスクリーンアクティビティに切り替えると表示が失われるため、onStart使用できません。onStopおそらくそれはより良いでしょうが

ここ( http://developer.android.com/guide/topics/fundamentals.html )にある図と情報に基づいて、ロックを適用するためのより良い方法がわかりません。

4

1 に答える 1

5

--は使用しないでください。これWakeLockはサービス用であり、追加のアクセス許可を保持する必要があります。

代わりに、アクティビティでsetKeepScreenOn()on someを使用してください。プリファレンスの収集方法に応じて、aまたはextraに基づいてView呼び出します。onCreate()SharedPreferenceIntent

于 2010-11-21T21:52:52.860 に答える