컨텍스트 : LocationClient가 위치를 폴링하기 전에 LocationClient를 연결할 수 있도록하는 일종의 Timer/AlarmManger 메커니즘을 어떻게 만들 수 있습니까? 아래에 위치를 폴링하기 전에 2 분 동안 지연시키려는 시도를 붙여 넣었지만 절전 모드에서는 작동하지 않는 것으로 나타났습니다.LocationClient WakeLock을 사용하는 타이머
가능한 해결책 : 나는 AlarmManager를 사용할 수 있습니다. 그러나 이렇게하면 두 번째 서비스를 만들고 나면 매우 복잡한 단일 LocationClient를 참조하게됩니다. 이 사람의 접근법 (Using Google Play Services LocationClient in background service)을 따라갈 수도 있는데, onConnected 메서드에서 위치 폴링을 수행합니다.
나는 LocationClient의 작동 방식이 아닌
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);
안녕하세요 @ 조, LocationClient를 정의하고, 연결하라는 말을 듣고, 괜찮은 연결을 얻으려면 일정 시간 동안 기다렸다가 .getLastLocation()을 통해 해당 연결을 사용한 다음 연결을 해제해야한다고 생각했습니다. 귀하의 의견에 진심으로 감사드립니다! – NumenorForLife