2

LocationManager.NETWORK_PROVIDERとLocationManager.GPS_PROVIDERの両方を異なるリスナーで実装してから、リスナーの登録を解除することをお勧めしますlocationManager.removeUpdates(locationListener)?

GPS_PROVIDERは値を返すのに多くの時間がかかり、時にはコールバックさえしないので?

また、locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);を持つことができます。コールバックがない場合にデッドロックを回避するためにpostDelayedを使用してハンドラーで?

誰かによる助けはありますか?

前もって感謝します!!!

BR、J

4

2 に答える 2

1

Hm afaik locationManager.getLastKnownLocationはすぐに返されるので、デッドロックは表示されませんか?

自分のLocationListenerを本当に管理する必要がある場合は、最初にNetwork-Oneと2つのGPS-oneを登録することをお勧めします。network-Listenerを使用して、最初の場所(大まかな)を受信します。1つのGPS-Location-listenerを構成して、すべてのGPS-Updateを受信します。位置が十分に正確になったら、管理されたGPS-Location-Listenerに切り替えます。このGPS-Location-Listenerは、x秒ごとおよびxメートルの差分ごとにのみ更新を受信します。その他の例については、 http://developer.android.com/guide/topics/location/obtaining-user-location.htmlを参照してください。

地図上に場所を表示したい場合は、MyLocationOverlayを試してください。それはあなたのためにすべてを行います。

于 2011-03-06T16:23:28.573 に答える
0

理想的には、この質問はもう有効ではありません。Googleがついに、これをより効果的に処理する新しいバージョンのロケーションリスナーをリリースしたからです。以下の同じリンク:http: //developer.android.com/google/play-services/location.html

于 2013-05-29T13:14:38.723 に答える