Service
とAlarmManager
が必要です。あなたのサービスは、ポジションを取得してサーバーに送信し、AlarmManager
はあなたが決めた間隔でサービスを開始します。あなたはおおよそonCreate
またはあなたがしたい他の場所でこのようなあなたのService
であなたのAlarmManagerを初期化する必要があります。サービスの使用方法のあなたのサービス
public class YourAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, YourService.class));
}
}
を開始
AlarmManager alarmMgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(this, YourAlarmReceiver.class),PendingIntent.FLAG_CANCEL_CURRENT);
// Use inexact repeating which is easier on battery (system can phase events and not wake at exact times)
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, YOUR_ALARM_TRIGGER_AT_TIME,YOUR_ALARM_INTERVAL, pendingIntent);
YourAlarmReceiverつもりアンドロイドウェブサイトhttp://developer.android.com/guide/topics/fundamentals/services.html
を参照してください。
うまくいけば、これを試してここに投稿します。ありがとうございました。 – Sap
私はそれを試して、目的はうまくいきました。今私が抱えている問題は、データポイントが非常に多くなっていることです。 * LocationManager *には、少なくとも10メートルの変位が見られる場合にのみ[作業]を行うようにお願いします。それでも、私は、変位が見えるまで同じ位置の2番目(ほぼ)のデータポイントを取得しています。これは* AlarmManager *のためにできますか? – Sap
AlarmManagerを使用してLocationManagerを起動していますか?あなたがAlarmManagerに与えた間隔は、あなたが好きな時間帯に好きなサービスを呼び出すために使われます...問題を正確に理解できませんでしたか?あなたはあなたがあまりにも多くの更新をしていると言っています、間隔を増やすことができますか?もしthereseが変位の10メートルではない場合、結果を処分することができますが、 GPSの精度は十分ではありません。 –