Контекст: Как создать механизм Timer/AlarmManger, который позволяет LocalClient подключаться в течение двух минут до опроса местоположения. Ниже я вставил свою попытку задержать за две минуты до опроса местоположения, но он не работает в режиме сна.LocationClient Timer in Service with WakeLock
Возможные решения: Я мог бы использовать AlarmManager. Однако это заставит меня создать SECOND-сервис, а затем сделать ссылку на один LocationClient очень сложной. Я мог бы также следовать подходу этого человека (Using Google Play Services LocationClient in background service), где в методе onConnected он выполняет опрос местоположения.
Я хотел бы какие-либо рекомендации относительно того, что я должен смотреть в
В моей onStartCommand методом ...
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
//Getting and Posting Location
Log.i("localwordservice", "Creating and Connecting mLocationClient");
mLocationClient = new LocationClient(this, this, this);
mLocationClient.connect();
Timer theTimer = new Timer();
theTimer.schedule(new TimerTask() {
@Override
public void run() {
if(checkIfGooglePlay()) {
System.out.println("TIMER is now iniating post location");
getPostLocation();
System.out.println("wake lock being released!");
wl.release();
System.out.println("The Service is being stopped!");
stopSelf();
}
}
}, TWO_MINUTES);
Привет @Joe, я думал, что LocationClient необходимо определить, сказать, чтобы подключиться, подождать некоторое время, чтобы получить приличное соединение, использовать это соединение через .getLastLocation(), а затем отключиться. Я очень ценю ваши отзывы! – NumenorForLife