理由はわかりませんが、私のサービス(startService(Intent ...)で開始)はしばらくすると閉じ続けます。サービスがWiFiSLAMで位置を2分ごとにチェックするようにしたいので、TimerTaskがサービスで実行されています。アプリが閉じられ(onDestroy)、画面がオフになった後、サービスがシャットダウンしていることに気付きました。
私はWakeLockについて読み、これを試しました:
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wakeLock.acquire();
しかし、それでも機能しません。どうしたらいいのかわからない。Wifiポジショニングフレームワークで2分ごとにバックグラウンドの位置を更新したいだけです。
また、onStartCommand()の戻り値をSTART_STICKYに設定しました。バックグラウンドで実行されている可能性がありますが、しばらく実行しているとLogCatのログが表示されないため、indoorLocationManagerがまだ新しい位置をキャッチしていることがわかります。
誰かがアイデアを持っていますか?