Каков наиболее эффективный способ использования LocationClient для получения обновлений?
Я думаю о двух отдельных будильниках, чтобы собрать пользователяданные о местоположении каждый час, один, который отправляется каждые 59 минут, чтобы "подключения» клиент и секунду, чтобы фактически получить местоположение, а затем впоследствии отключить клиента.
Что касается времени автономной работы, могу ли я рассмотреть что-нибудь еще, если получу пользователя?S расположение будет основным стоком приложения? Или есть другой подход к наличию двух сигналов тревоги? Изначально у меня был только один сигнал тревоги, но выполнение (! MLocationClient.isConnected) проверки соединения не дает клиенту достаточно времени для подключения.
Спасибо за ваше понимание.
Два сигнала тревоги сработали бы примерно так:
private int PERIODIC_UPDATE = 60000*60; //gets location and disconnects every hour
private int PERIODIC_RECONNECTION_UPDATE = 60000*59; //connects 1 minute before getLocation call
Timer toReconnect = new Timer();
toReconnect.schedule(new TimerTask() {
@Override
public void run() {
mLocationClient.connect();
}
}, 5000, PERIODIC_RECONNECTION_UPDATE);
Timer theTimer = new Timer();
theTimer.schedule(new TimerTask(){
@Override
public void run() {
try {
if(!mLocationClient.isConnected()) {
mLocationClient.connect();
//This will not have much affect because cannot so quickly, will remove.
}
Location theLocation = mLocationClient.getLastLocation();
if(theLocation!=null) {
checkPostLocation(theLocation);
mLocationClient.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}}, 5000, PERIODIC_UPDATE);