私は2Dバーコードをスキャンし、長いタスクが実行されるIntentServiceに各バーコードを送信する小さなユーティリティーアプリケーションを開発しています。複数のウェイクロックを保持することはできますか?
アクティビティが表示されている場合、バーコードがサービスで処理されるまで、デバイスがスリープ状態にならないようにする必要があります。サービスが処理を終了すると、サービスは停止しますが、アクティビティは引き続き表示されます。
アクティビティのライフサイクル中にSCREEN_DIM_WAKE_LOCK WakeLockを保持したいのですが、このタイプではCPUがスリープ状態にならないため、新しい2DコードがスキャンされたときにPARTIAL_WAKE_LOCKを取得する必要があります処理された後、インテントサービスでリリースされます。
SCREEN_DIM_WAKE_LOCKの目的は、数秒ごとに電源ボタンを押してデバイスを起動し、新しいバーコードを読み取ることができないという不便を避けることです。ユーザは、多数のコードを次々に読まなければならず、ユーザのやりとりがない短い間隔であっても、その活動はまわりにあるべきである。
私はアプリがコントロールできないいくつかの条件のために、アプリがトップに、クローズされていない、またはフォアグラウンドになっていることを100%保証していませんが、できる限り行きたいと思います。
したがって、複数のWakeLockを保持することは可能ですか?彼らはどこで活動と奉仕の両方によってアクセスされると宣言できますか? (シングルトン、拡張アプリケーション?)
+1。しかし、私は 'onStop'でスクリーンWakeLockを公開しています。なぜなら、私はダイアログを押すときにスリープ状態にしたくないからです。 –
私は、ダイアログが前面に来ると、ユーザーはダイアログに応答しなければならないので、バーコードをスキャンしていないことを前提にしています。時間内のダイアログ? – Madushan
はい、まあまあ、スリープタイマーの時間はどれくらいかかりますか? 3秒かかると、電源ボタンを押すのが面倒です。時間がかかると、私はそれでいいです。作業負荷に応じて、私は画面の薄暗いロックをダンプすることさえできます。 –