내 앱은 UIBackgroundMode을 사용합니다. 즉, 앱이 활성화되어 있지 않아도 블루투스 이벤트가 발생하면 iOS가 앱을 다시 실행합니다. 따라서 블루투스 이벤트는 iOS에 의해 백그라운드 대기열로 발송됩니다 (대기열은 나로 지정됩니다).앱이 백그라운드로 다시 시작되면 기본 대기열이 전달됩니까?
수 내가 다시 메인 큐 그러나 파견 코드, 즉
DispatchQueue.main.async { }
(스위프트)
dispatch_async(dispatch_get_main_queue(), ^{ })
(목표 - C)
하고 실행 루프가 실행 중이라고 가정, 즉 내 블록이 파견 되나요? 아니면 배경 모드에서 일시 중단 메인 큐이며 따라서 나는 그것에 블록을 추가하는 것을 피해야합니까?
동일한 작업을 시도해 보셨습니까? –
앱이 백그라운드 모드에서 실행되는 동안 블록이 실행되기 때문에 iOS가 메인 루프를 실행하는 것으로 보이는 실험을 만들었습니다. 그러나 iOS가 항상 이와 같이 동작 할 것이라고 가정 할 수는 없습니다. 메인 루프를 계속 실행한다면 내 애플 리케이션에서 훨씬 더 쉬울 것이다. 왜냐하면 필요할 때 메인 큐로 간단하게 디스패치하기 때문에 스레드 동기화가 필요 없기 때문이다. –