Если вы намереваетесь получить широту и долготу, когда ваше приложение не запущено, вы можете использовать Сервис, который получает широту и долготу в фоновом режиме и выполняет любую задачу, которую вы хотите. А также не забывайте удалять обновления, когда они не нужны, поскольку получение обновлений является очень дорогостоящей операцией с точки зрения использования батареи устройства.
Еще одна вещь, вам не нужно проверять местоположение на нулевое значение, потому что onLocationChanged () будет вызываться только тогда, когда местоположение получено вашим провайдером.
Хотя я тоже новичок в Android. Это может помочь вам. Вы должны увидеть документацию по Android, что на самом деле делают эти методы класса Service и когда они вызываются.
Это не завершенный код. Вы сами внедрили локализатор в это. Это просто пример программы, которая показывает обычный класс:
import java.util.Timer;
import java.util.TimerTask;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class BackService extends Service {
private MyTimerTask mTimerTask;
private Timer mTimer;
@Override
public void onCreate() {
mTimer = new Timer();
mTimerTask = new MyTimerTask();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mTimer.schedule(mTimerTask, 0, 500);
Log.d("onStartCommand","onStartCommand called...");
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
private class MyTimerTask extends TimerTask {
@Override
public void run() {
// TODO Auto-generated method stub
Log.i("BackService","BackService is running...");
doSomethingWithLocation();
}
}
}