上にあるとき、私は自分のアプリケーションでジオフェンスで動作するようにしようとしているトリガされません。 これまでのところ、私は成功しており、アプリケーションがフォアグラウンドで である場合は完全に機能します。 Google Playサービスを利用しているAndroidエミュレータで確認しています。 は、私は位置パラメータを設定していると私は を言ったように、アプリケーションがフォアグラウンドにある場合、それは正常に動作し、これを確認するには。ジオフェンス遷移は、アプリケーションがバックグラウンド
しかし、アプリケーションがバックグラウンドで実行されている場合は、アプリケーションを開くかGoogleマップアプリケーションを開くまで、 の遷移は発生していないようです。
だから私はBroadcastReceiverの代わりIntentService を使用することを試みたと私はこのようなマニフェストファイル にbroadcastreceiverを登録しました:
<receiver android:name = ".GeofenceReceiver"
android:exported = "true"
android:enabled = "true"
/>
しかし、私はまだ
...同じ結果を抱えていますアプリケーションがバックグラウンドにあるときに、どのように私は、ジオフェンスの遷移をトリガすることができますか?
私は、サービス内のLocationServices.FusedLocationApi.requestLocationUpdates
を使用して考えました。したがって、このアプローチでは、私のアプリケーションは位置 の更新を要求し、これはおそらくジオフェンスの遷移を引き起こします。
しかし、おそらくそれは、バッテリーを消費しますし、これは悪い習慣です。 他のオプションはありますか?