iOS 개발자로서 저는 항상 백그라운드 실행이 앱을 설계하고 구현하는 동안 배운 한계라는 것을 알고 있습니다. 백그라운드에서 실행이 허용 된 앱으로 이점을 얻을 수있는 몇 가지 사용 사례가 있습니다.
iOS 13 도입과 함께 Apple은 백그라운드 작업 프레임 워크를 도입했습니다 . 이를 통해 앱이 백그라운드에있는 동안 콘텐츠를 새로 고치고 작은 작업을 수행 할 수 있습니다.
백그라운드 작업을 구현하는 동안 몇 가지 중요한 고려 사항은 다음과 같습니다.
전원 : 장치 배터리 수준은 배경 작업이 트리거되는 주요 요소입니다. 또한 작업을 수행하는 동안 시스템이 완료되었음을 알려야합니다. 이것은 우리의 작업이 불필요하게 전력을 소모하지 않도록합니다.
성능 : 우리의 임무는 효율적이어야하며 높은 성능을 보장해야합니다. 백그라운드에서 불필요한 작업을 구현하지 말고 GCD를 사용하여
앱에 대한 백그라운드 작업 실행을 요청하는 방법을 살펴 보겠습니다.
1 단계 : 앱에 대한 백그라운드 처리 기능 활성화
먼저 앱에 대한 백그라운드 처리 기능을 활성화해야합니다. 앱의 백그라운드 모드 기능에서 사용할 수 있습니다.
2 단계 : 앱 체계에서 백그라운드 처리 활성화
2 단계 : info.plist에 백그라운드 작업 식별자 추가
작업에 대한 고유 식별자를 제공해야 하며 키 허용 백그라운드 작업 스케줄러 식별자 아래의 info.plist 에 작업 식별자를 지정해야합니다.
2 단계 : info.plist에 작업 식별자 추가
3 단계 : 백그라운드 처리를위한 앱 등록
백그라운드 작업을 위해 앱을 등록해야합니다. 두 가지 유형의 백그라운드 작업이 있습니다.
시스템이 지정된 식별자“ com.amitthakur.sampleapp.refresh ”를 사용하여 작업을 실행할 때 handleAppRefresh (:) 메서드 가 호출됩니다.
시스템이 지정된 식별자“ com.amitthakur.sampleapp.dataprocessing ”을 사용하여 작업을 실행할 때 handleDataProcessing (:) 메서드 가 호출됩니다.
4 단계 : 실행할 작업 제출
다음 단계는 앱이 백그라운드로 전환 될 때 작업 을 submit () 하는 것입니다. 이를 위해 지정된 식별자로 요청을 가져옵니다.
A를 BGAppRefreshTask , 우리는 지정해야 earliestBeginDate 때 작업을 실행하는 시스템을 말한다.
BGAppRefreshTask 제출
A를 BGProcessingTask , 우리는 그것을 여부를 지정해야합니다 requiresNetworkConnectivity 및 requiresExternalPower을. 이는 작업 실행의 전제 조건으로 작동하며 작업 요구 사항에 따라 지정해야합니다.
BGProcessingTask 제출
5 단계 : 작업 처리기 구현
이제 작업을 등록 했으므로 작업 방식을 살펴 보겠습니다. 첫째, 대기열에 다른 작업이 있도록 작업을 다시 예약합니다. 앱이주기적인 업데이트를 예상하는지 여부에 따라 다릅니다.
expireHandler로 BGAppRefreshTask 처리
expireHandler로 BGProcessingTask 처리
작업을 실행할 때마다 몇 가지 사항을 지정해야합니다.
setTaskCompleted (success :) : 작업 실행을 완료로 표시하는 데 사용합니다.
expireHandler : 종료되는 작업 실행을 정상적으로 처리하려면 이것을 사용합니다. 이를 사용하여 정리를 수행하거나 작업을 마무리합니다.
5 단계 : 앱이 백그라운드로 전환 될 때 작업 예약
마지막으로, 앱이 백그라운드로 전환 될 때 작업을 예약하는 것을 잊지 마십시오.
백그라운드에서 실행할 작업을 제출해야합니다.
결론적으로 몇 개의 앱에서 백그라운드 작업 실행을 구현하여 앱 성능을 확실히 향상 시켰습니다. 그러나 작업 트리거는 예측할 수 없습니다. Apple은 디버그 모드에서 작업을 호출하는 방법을 제공했지만 백그라운드 작업에 대한 다음 블로그에서 더 많은 방법을 제공했습니다.
도움이 되었기를 바랍니다. 읽어 주셔서 감사합니다.