BackgroundThread で OrientationEventListener を有効にするスティッキー サービスを作成しています。現在、リスナーは onDestroy() で無効化されているか、サービスが手動で停止されたときに無効化されていますが、デバイスがスリープ状態になるとアクティブなままになります。SensorManager がアクティブなままなので、これはバッテリーに影響すると思います。デバイスがスリープ状態になったときにサービスを停止 (またはリスナーを無効化) し、デバイスの電源を入れたときにサービスを再開 (またはリスナーを有効化) するにはどうすればよいですか?
バックグラウンドスレッドは次のとおりです。
private class BackgroundThread implements Runnable {
public void run() {
try {
while (isRunning){
orientListener.enable();
Thread.sleep(10000);
}
orientListener.disable();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
助けてくれてありがとう!