Search
Duplicate

상태 변화에 따라 다른 동작을 처리하기 위한 앱델리게이트 메서드들을 설명하시오.

Created
2023/10/12 12:19
Tags
iOS
태그

 상태 변화에 따라 다른 동작을 처리하기 위한 앱델리게이트 메서드들을 설명하시오.

applicationDidBecomeActive (UIApplication)

sceneDidBecomeActive (UIScene)

앱이 Active 상태가 되었을 때 호출되는 메서드이다.
UIKit은 이 메서드를 호출새서 앱이 In-Active → Active 상태로 변한 것을 알 수 있다.
UIkit은 이 메서드가 호출되면, didBecomeActiveNotification 이라는 Notification을 post 해서 앱 전체에서 해당 이벤트를 처리할 수 있도록 해준다.

applicationWillResignActive (UIApplication)

sceneWillResignActive (UIScene)

앱이 Active 상태를 포기했을 때 호출되는 메서드 (Active → In-Active)
UIkit은 이 메서드를 호출하여 앱이 Activ → In-Active 상태로 변한 것을 알 수 있다.
홈 화면으로 나가거나 제어 센터, 알림 센터를 사용할 때 In-Active 상태가 되므로 호출된다.
앱에 저장되지 않은 사용자 데이터가 있다면 저장하게 된다. 하지만 이러한 방법보다는 특정 시점에 사용자 데이터를 저장하는 것이 좋다고 한다.
UIKit은 이 메서드를 호출한 뒤, willResignActiveNotification 이라는 Notification을 post해서 웹 전체에서 해당 이벤트를 처리할 수 있도록 해준다.

applicationDidEnterBackground (UIApplication)

sceneDidEnterBackground (UIScene)

앱이 Background 상태가 됐을 때 호출되는 메서드이다 (In-Active → Background)
UIKit은 이 메서드를 호출하여 앱이 In-Active → Background 상태로 변한 것을 알 수 있다.
이렇게 백그라운드 상태가 되면 타이머를 무효화하고 앱 상태 정보를 저장하게 된다.
applicationDidEnterBackground 메서드는 빠르게 반환되기 때문에 만약 이 메서드에서 수행할 작업이 있고 추가적인 실행시간이 필요하다면 beginBackgroundTask(expirationHandler:) 메서드를 사용하면 된다.
UIkit은 이 메서드를 호출한 뒤, willResignActiveNotification 이라는 Notification을 post 해서 앱 전체에서 해당 이벤트를 처리할 수 있도록 해준다.

applicationWillEnterForeground (UIApplication)

sceneWillEnterForeground (UIScene)

앱이 Foreground 상태가 됐을 때 호출되는 메서드이다 (Background → Foreground)
UIKit은 이 메서드를 호출하여 Background → Foreground 상태로 변한 것을 알 수 있다.
UIKit은 이 메서드를 호출하기 전에 willEnterForegroundNotification 이라는 Notification을 post해서 앱 전체 이벤트를 처리할 수 있도록 해준다.

applicationWillTerminate (UIApplication)

앱이 종료되기 직전에 호출되는 메서드이다.
이 메서드는 SceneDelegate에는 존재하지 않는다. 이 메서드가 호출된 후 앱이 종료되게 되면 메모리에서 완전히 제거된다.
즉, 이 메서드를 호출할 때 사용자 데이터를 저장하고 타이머를 무효화하는 등의 작업을 수행해야 한다.
UIKit은 이 메서드를 호출한 뒤, willTerminateNotification을 post 해서 앱 전체에서 해당 이벤트를 처리할 수 있도록 해준다.