목표-c - CLLocationManager 위치 지정
为情所困
为情所困 2017-05-02 09:25:35
0
1
577

위치 지정을 활성화하는 방법에는 두 가지가 있습니다. startMonitoringSignificantLocationChanges와 startUpdatingLocation의 차이점은 무엇입니까?

为情所困
为情所困

모든 응답(1)
漂亮男人

전자(startUpdatingLocation)는 표준 위치 지정입니다. 백그라운드에서 사용하려면 info.plist 파일에 필수 백그라운드 모드 속성을 추가하고 위치 업데이트를 위한 앱 레지스터 값을 선택해야 합니다.

전자(startUpdatingLocation)가 백그라운드에서 실행 중일 때 리소스 문제로 인해 시스템에 의해 일시 중지되거나 종료될 수 있지만 업데이트가 있으면 깨어납니다. 단, 시스템이 여전히 리소스 부족인 경우. 업데이트가 지연되면 대리인 호출이 중단됩니다. 실시간 요구 사항이 높은 경우에는 적합하지 않을 수 있으며 사용자 컴퓨터의 성능을 제어하기 어려울 수 있습니다.
전자(startUpdatingLocation)는 사용자가 수동으로 닫으면 다시 활성화되지 않습니다.
이전 포지셔닝은 GPS/기지국/WiFi 포지셔닝을 기반으로 합니다. 어떤 CoreLocation 프레임워크가 사용되는지에는 고유한 규칙이 있습니다.
후자(startMonitoringSignificantLocationChanges)는 기지국 위치 확인을 사용하므로 기기에 전화 모듈이 있어야 합니다. plist에서 xx 속성을 설정하여 다운로드하고 설치할 수 있는 기기를 제한할 수 있습니다.
후자(startMonitoringSignificantLocationChanges)는 백그라운드에 있든 사용자가 수동으로 닫았든 대리자를 호출하기 위해 활성화됩니다. 업데이트를 방지하는 방법은 3가지뿐입니다. (1) 사용자가 위치 확인 서비스를 껐습니다. (2) 사용자가 앱에 대한 위치 확인 서비스를 끕니다. (3) 기기가 비행기 모드에 있거나 필요한 하드웨어를 켤 수 없습니다(위치 확인 모듈의 하드웨어인 것으로 추정).
후자(startMonitoringSignificantLocationChanges)는 언제 업데이트되나요? 베이스 스테이션을 교체하면 업데이트됩니다. 따라서 업데이트 빈도는 기지국 밀도와 관련이 있습니다. 도시 지역은 교외 지역보다 더 자주 업데이트됩니다. 따라서 많은 학생들은 여전히 ​​동일한 기지국 그룹 내에 있기 때문에 업데이트가 없다고 말했습니다.
전자가 후자보다 더 많은 전력을 소비하고 정확도도 더 높습니다.
3. 둘 사이의 공통 기능:
둘 다 위치 정보를 업데이트할 때 동일한 대리자 메서드를 콜백합니다. -(void)locationManager:(CLLocationManager
)manager didUpdateLocations:(NSArray
)locations;
4. 업로드 정보:
백그라운드 작업은 필요한 작업을 수행하기 위해 제한된 시간만 할당되므로 시간 초과(예: 네트워크 요청) 전에 완료되지 않으면 앱이 종료됩니다. 원하는 작업을 수행하고 백그라운드 작업을 신청할 수 있도록 추가 10분을 신청하는 방법은 다음과 같습니다.
5. 요약: 두 가지 방법 모두 사용 시나리오에 따라 결정되는 장점과 단점이 있습니다. 일반적으로 포그라운드에서 실행되는 앱은 정확한 실시간 위치 지정이 필요하며 실행 시간이 제한되어 있습니다. 내비게이션 애플리케이션과 같은 표준 포지셔닝. 이동 속도가 빠르고(거리가 확연히 변함) 오랫동안 위치 확인(모니터링)이 필요한 경우에는 택시 호출 애플리케이션 등 후자가 고려될 수 있다. 여기서 인용

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿