2011-10-07 18 views
2

私は数秒ごとにサーバーにその場所を送信する必要のあるニッチアプリケーションを持っています。 (携帯電話のバッテリー寿命について心配しないでください)。スレッドや何かを数秒ごとに実行させるには?私はgpslistenerを持っていますが、サブクラスの名前は"onlocationchanged"です。場所が変更された場合にのみ情報を提供したいと思われるので、毎回更新された場所が必要です。AndroidメイクメソッドはX秒ごとに実行されます(GPSとサーバーコールを含む)

私はこれをします?

洞察は、サービスのonCreateこの

答えて

8

配置を評価しました。

mTimer.scheduleAtFixedRate(new TimerTask() { 
    @Override 
    public void run() { 
      // What you want to do goes here 
     } 
    }, 0, REFRESH_TIME); 

REFRESH_TIMErunが繰り返されるときにミリ秒単位で周波数または時間です。

+0

を取得する頻度をカスタマイズするためにこれらを使用し

minDistance通知の-the最小距離間隔は、mTimer' – CQM

+1

mTimerはTimerクラスである 'です。 – blessenm

+0

Javaタイマーは別のスレッドで実行されますが、よりAndroid-yのアプローチはハンドラーを使用することです。一方、ネットワーク要求は、別のスレッドで実行するのが望ましいでしょう。 – Delyan

1

アンドロイドに現在の位置を尋ねることはできません。 GPSには時間がかかり、利用できない場合があります。これはpostに記載されています。あなたは何ができるか

はuser500865で述べたようなタイマーを使用している、とあなたが最後の位置を追跡し、新しい場合は、いくつかのロジックを行うことができ、その後はこの

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 1, this); 
Location l = null; 
l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

のような最後の既知の場所を要求します場所が違うか同じです。通知の

MINTIME -the最小時間間隔(ミリ秒):

方法requestLocationUpdatesは、次のパラメータがあります。このフィールドは電力を節約するためのヒントとしてのみ使用され、ロケーション更新間の実際の時間はこの値より大きくても小さくてもかまいません。メートル

にあなたはどのようなデータ型の位置更新

+0

ありがとうIこれとタイマースレッドの両方を行った – CQM

関連する問題