Вам нужны Service
и AlarmManager
. Ваша служба будет обрабатывать получение позиции и отправку ее на сервер, а AlarmManager
будет вызывать вашу службу в течение заданного вами интервала. Вы должны инициализировать ваш AlarmManager с вашим Service
примерно таким же образом в onCreate
или другом месте, которое вы хотите:
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 собирается запустить ваш сервис
public class YourAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, YourService.class));
}
}
О том, как пользоваться Сервисами, можно узнать на сайте Android http://developer.android.com/guide/topics/fundamentals/services.html