Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- stack
- Xcode
- JPA
- 웹뷰
- Session
- Git
- Apple
- FLUTTER
- IOS
- window
- 한글
- Swift
- darkmode
- Archive
- rxswift
- Notification
- error
- appstore
- Python
- view
- Realm
- UIButton
- Firebase
- SwiftUI
- Code
- iOS16
- MacOS
- mac
- 개발자
- github
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) 앱 종료 감지, 지연 applicationWillTerminate - EEYatHo iOS 본문
iOS, Swift/Tip, Bug, Swift Error
Swift ) 앱 종료 감지, 지연 applicationWillTerminate - EEYatHo iOS
EEYatHo 2023. 6. 30. 15:30반응형
applicationWillTerminate
- UIKit > UIApplication.h > applicationWillTerminate 을 가지고 앱 종료 직전을 컨트롤할 수 있음.
- 해당 메소드가 return 되면, 시스템이 앱을 종료한다.
앱 종료 지연 및 async 작업
- applicationWillTerminate 메소드에 sync 코드를 넣으면 다 실행하고 종료되지만,
NotificationCenter, API 호출 등의 async 작업은, 미처 실행되기 전에 함수가 종료되서,
동작하지 않는 경우가 발생한다. - 이를 방지하기 위해서는 return 을 지연(sleep) 시키면 된다.
- 문서에 따르면 최대 약 5초까지 지연시킬 수 있다.
코드
/// 해당 함수가 반환되면 시스템이 앱을 즉시 종료.
/// 최대 5초까지 지연할 수 있음 ( API 통신 등을 위한 시간 확보 )
/// 참고 링크 : https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623111-applicationwillterminate
func applicationWillTerminate(_ application: UIApplication) {
print("\(type(of: self)): \(#function)")
RxBus.shared.post(event: Events.ApplicationWillTerminateEvent())
sleep(5)
print("💣💣💣 applicationWillTerminate return")
}
Reference
'iOS, Swift > Tip, Bug, Swift Error' 카테고리의 다른 글
Swift ) weak 를 못쓰게되면서.. (with Rx vs Combine) (0) | 2023.08.22 |
---|---|
Swift ) Moya Interceptor, Plugin - EEYatHo iOS (0) | 2023.07.27 |
Swift ) NSURLErrorDomain Code=-1103 - EEYatHo iOS (0) | 2022.11.10 |
Swift ) com.apple.CoreHaptics Code=-4805 - EEYatHo iOS (0) | 2022.10.28 |
iOS ) iOS16 present 버그 - EEYatHo iOS (2) | 2022.10.11 |
Comments