4

FusedLocationProvider APIを使用して幾つかのGeofenceをPendingIntentに登録しています。私のアプリが起動したときに(アプリケーションが手動でこの動作を引き起こすために殺されました)Geofenceイベントを介して、いくつかの作業を行うバックグラウンドサービスを開始します。Android O、バックグラウンドサービスが30分以上実行されています。どうして?

このサービスでは、長時間実行されるタスクを実行するために別個のバックグラウンドスレッドを作成し、ウェイクロックを取得してタスクが完了したことを確認します。たとえそうであってはならないとしても、サービスは長期間(30〜50分)実行されます。ホワイトリストに載っていて、Android Oの最近の変更を理解しているため、長期間にわたって動作してはいけません。

PendingIntentsがアプリを起動してそれらのインテントが通知用ではないにもかかわらず、ホワイトリストのように扱われます(つまり、ユーザーが見ることができるもの)。

これらのインテントは、「SMS/MMSメッセージなどのブロードキャストを受信する」カテゴリに分類されます。前述のようにhere in documentation

+0

google issue trackerと同じ質問ですが、誰かがGoogleより速く答えることができます: https://issuetracker.google.com/issues/38162258 – Waqas

答えて

0

私はプレビューでいくつかのバグがあります。

ただし、サービスが1分後に実行されていますか? あなたが作成したアプリプロセスとバックグラウンドスレッドは、サービスが破棄された後でも実行できます。

あなたのサービスはonDestroyコールバックを渡しますが、そこにスレッドを停止せずにバックグラウンドで作業を続けます。 Androidがそれ以上重要ではないと判断したため、アプリ全体のプロセスが終了すると停止する。

関連する問題