2016-06-13 5 views
1

ジオファンスの作成と監視にGoogleのシンプルなコードを使用していて、すべて正常に動作しますが、デバイスが2秒間gps信号を失ったときに、信号バックが入力としてカウントされると、Android - ジオフェンスがトリガーされたときにトリガー

でも、Geofenceの中にいても、私はこの状況を避けることができませんね。 この動作を抑制できるかどうかは知っていましたか?また

追加の質問、私はそれに必要な変更、それBroadcastReceiverするがされており、今の私は受け取るためにサービスを使用して、それが仕事の罰金だ遷移 を受信するサービスよりも良いBroadcastReceiverを使用していることstackoverflowのジオフェンスの問題でたくさん読んで?

答えて

0

これは、Google Geofenceがネットワークの不正な場所に頼っている場合に発生する問題です。私はこのhereの潜在的な解決策を持っています。 100%ではありませんが、ジオフェンスのジャンプを抑制するのに役立ちます。

質問の2番目の部分については、IntentServiceか単なるサービスかどうかはわかりません。サービスの場合は、IntentServiceまたはBroadcastReceiverの使用をお勧めします。 IntentServicesはバックグラウンドスレッドでタスクを実行するために主に使用されます.BrecastReceiversはプロセスを再起動する(ユーザーが強制終了しなかった場合)ためのもので、目的を処理するためのクイックタスクを実行します。それらの両方は自己完結型であり、タスクが完了した直後に自分自身を破壊する。しかし、あなたの質問に答えるためには、にはがありませんが、これはBroadcastReceiverを使用する方が良い方法です。

+0

あなたの返事のためのthxは本当に助けて、はい私は意味していたIntentServices あなたの答えに私はよく理解していませんでした "移行イベントでgps呼び出しを行うことです"あなたはgps呼び出しの意味ですか? – hasd11

+0

偽の終了が得られたら、LocationManagerを使用してGPSポイントを呼び出します。ジオフェンスの外側にポイントがある場合は、終了コードブロックを実行します。あなたのポイントが依然としてジオフェンスにある場合は、ジオフェンスを同じ中心点にリセットしますが、ジオフェンスを25m大きくします。あなたが実際に望むものよりも大きいものを望まないので、あなたのジオフェンスの最大サイズを持っていることを確認してください。 –

+0

私はありがとう を参照してくださいしかし、本当に大きなジオフェンスが必要ですか?私のジオフェンスは今、200の半径を持っています。私はそれをもっと大きくしたくありません。 – hasd11

関連する問題