2016-06-04 4 views
0

내 앱에서 사용자 위치가 크게 변경되면 API 서비스를 호출해야합니다. 그래서 startMonitoringSignificantLocationChanges 메소드를 사용하고 corelocationdelegate 메소드 (locationManagerdidUpdateLocations)에서 API 호출을 처리합니다. 앱이 배경 또는 활성 상태에있을 때 나는 주저없이 API를 호출 할 수 있습니다.iOS 앱이 일시 중지 상태 일 때 SignificantLocation 변경을 처리하는 방법은 무엇입니까?

앱이 일시 중지 상태 일 때 문제가 발생합니다. 언제 SignificantLocationChange가 실행되는지 알 수 있습니다. 종료 된 앱이 위치 서비스를 수동으로 다시 시작하고 위치 데이터를 처리하는 데 소량의 시간을줍니다.이 경우 위임 메소드로 다시 전화를받습니다. 백그라운드 작업을 사용하여 API를 호출해야합니다. 또는 API 호출은 이전과 같이 이루어져야합니다 (활성 상태 인 경우). 현재 API 호출은 약 6-7 초 걸립니다. 10 초 이상 걸리면 API 호출을 어떻게 처리합니까?

질문이 하나 더 있습니다. stopMonitoringSignificantLocationChanges를 호출하지 않으면 문제가 있습니까? 사용자 위치에 중요한 위치 변경이있을 때 내 앱은 항상 API를 호출해야하기 때문입니다.

답변

1

"... API 서비스를 호출해야합니다 ..."라고 말하면 서버에 네트워크 호출을하는 것입니까? 그렇다면 배경 시간을 요청해야합니다.

저는 백그라운드 시간이 약 30 초 밖에 걸리지 않으며 네트워크 호출이 예측할 수없는 시간이 걸릴 수 있음을 기억합니다.

beginBackgroundTaskWithExpirationHandler으로 전화를 걸고 서버 호출이 완료되면 endBackgroundTask으로 전화를 걸고 싶습니다.

+0

앱에서 중요한 위치 변경 사항을 항상 모니터링해야하는 경우 'stopMonitoringSignificantLocationChanges'를 호출하지 않아도됩니다. 중요한 위치 변경 API는 전력 효율적으로 설계되었습니다. GPS를 항상 켜기 만하고 Wi-Fi 핫스팟, 셀 타워 정보 및 기타 사항을 사용하여 GPS를 항상 실행하지 않고 위치를 파악합니다. –

관련 문제