2016-10-26 20 views
0

Iamはハンドラを使用して毎秒いくつかのフィールド信号強度計算を行い、ハンドラ期間中に座標を記録し、結果を&と記録するアプリケーションを開発しています。実際のテストや車のスピードを上げるときは、記録された座標は毎秒ではなく、2〜3〜4秒ごとに受け取ります。以下 コード:位置更新


final LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,  0, this); 

publicvoid method_01(LocationManager locationManager){ 

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 

@Override 
public void run() { 
Location locationDataRate =  locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
double latitude = locationDataRate.getLatitude(); 
double longitude = locationDataRate.getLongitude(); 
x=y+1; 
Save to file (latitude,longitude,x); 
handler.postDelayed(this, 1000); 
} 
}, 1000); 

} 

私は、時間と分を変更することも試してみました。距離(1000,0)

+0

ロケーションの変更を購読する必要があります。 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER、2000、1f、yourListener); –

答えて

0

まず、1秒ごとに更新を受信する場合は、より頻繁な更新を要求しないでください。したがって:とにかく

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this); 

、位置更新を処理するためのベストプラクティスは、永続的にgetLastKnownLocationのループが、位置更新のコールバックを実装していません。例hereのバンドルがあります。あなたの質問に

docに彼らは保証されませんでの更新間の間隔を述べる:

位置更新間隔はMINTIME パラメータを使用して制御することができます。ロケーションの更新の間の経過時間は、 のプロバイダの実装と、他の アプリケーションによって要求された更新間隔によりますが、minTimeよりも小さくなることはありません( )。

関連する問題