1

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();
        }
    }
}

助けてくれてありがとう!

4

1 に答える 1

1

この質問はあなたの答えになるはずです。画面がいつオンまたはオフになるかを知る方法を説明するこの記事を指します。

于 2012-05-01T09:45:32.623 に答える