BroadcastReceiverを拡張してSensorEventListenerを実装するクラスを作成できないのはなぜですか?このクラスは、アプリケーションで設定されたアラームインテントを受け取ります。
実装されたonSensorChangedメソッド内に設定されたクラスインスタンス変数があります。onReceiveメソッドで、リスナーを登録し、クラスインスタンス変数が設定されるまで実行されるwhileループを作成します。ループの後、リスナーの登録を解除します。ただし、変数が設定されることはなく、ループは実行され続けます。
ここでの答えによると、私は放送受信機の中にリスナーを登録してはいけません:
リスナー付きのBroadcastReceiverは、使用していないときにバッテリーを消耗します
AlarmManagerドキュメントには、デバイスがスリープしていることに関するこれらの警告がすべてありますが、私の場合、デバイスはスリープしません。