2017-04-11 8 views
0

내 응용 프로그램에서는 매 2 분마다 노출 된 웹 서비스에 내 세부 정보를 보내야한다는 요구 사항이 있습니다. 내가 어떻게 할 수 있니? NSTimer를 사용하여 위에서 언급 한 작업을 구현할 때 응용 프로그램이 백그라운드에있을 때마다 타이머가 3 분 동안 중단됩니다. backgroundExpirationHandler로 시도했지만 시간 간격을두고 작업을 수행하지 않습니다. 어떤 제안?응용 프로그램이 백그라운드 일 때마다 내 서버에 위치 정보를 보내는 동안 iOS 10에서 발생하는 문제

주 - info.plist에도 "위치 업데이트 용 앱 레지스터"가 추가되었습니다.

self.locationManager.pausesLocationUpdatesAutomatically = NO; 
locationManager.distanceFilter // get location callback after device moves to this defined distance 
locationManager.desiredAccuracy //according to your requirement 

그래서 때마다 위 바뀌는 일이 상기의, 당신이 얻을 콜백 :

당신이 기능에 백그라운드 위치 업데이트에 대한 권한을 추가하는 데 필요한 모든의
+0

"2 분마다"할 수 없습니다. "위치 업데이트를받을 때마다"할 수 있으며 서버를 마지막으로 업데이트 한 시간을 추적 할 수 있으며 마지막 업데이트 이후 2 분 이상 경과 한 경우에만 업데이트를 보낼 수 있습니다. 기기가 움직이지 않거나 위치가 좋지 않은 경우 얼마 동안 업데이트를받지 못할 수 있습니다. – Paulw11

+0

Timer 또는 Perform Selector를 사용하여 2 분마다이 작업을 수행 할 수 있습니까? –

+0

아니요, 앱이 일시 중지되었을 때 타이머가 실행되지 않습니다. – Paulw11

답변

0

먼저, 당신은 당신의 위치 관리자의 속성을 다음 조정할한다 대리자 메서드에서. 이 정보를 받으면 해당 지역의 앱 서버를 업데이트 할 수 있습니다.

+0

CoreLocation 대리인이 해당 시간에 실행됩니다. 그러나 응용 프로그램이 일시 중지 상태이므로 서버에서 대리인 내에서 업데이트 된 위치를 알 수 있도록 서비스 호출과 같은 작업을 수행 할 수 있는지 여부는 무엇입니까? –

+0

실제로 앱을 종료해도 위치 콜백으로 실행되도록 애플리케이션을 설정할 수 있습니다. 그러나이 경우 2 규칙이 적용되지 않습니다. 표시 위치가 500 미터라고 말하면 콜백을 받게됩니다. – ankit