728x90
문득 Local Notification을 앱이 suspended 상태로 전환되기 직전에 center에 request들을 추가해서 scheduling 해놓으면 동작할까라는 의문이 생겼다.
원래 Push Notification은 앱의 상태와 상관없이 동작해야하는게 맞기 때문에 동작은 당연히 할거라고 생각했는데 suspended 상태에서 동작하는지 background상태에서 동작하는지 명확히 확인하고 싶어서 테스트를 해보았고 결론은 'suspended에서 동작한다' 였다.
func applicationDidEnterBackground(_ application: UIApplication) {
var time: TimeInterval = 0
for _ in 0 ..< 10 {
let content = UNMutableNotificationContent()
content.title = "test"
content.sound = .default
content.body = "body"
time += 3
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: time, repeats: false)
let request = UNNotificationRequest(identifier: "noti test \(time)", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { error in
print("\(error == nil)")
}
}
}
앱이 백그라운드 상태로 들어갔을 때 총 10개의 notification을 3초간격으로 트리거시키는 코드를 작성했다.
보다시피 Suspended 상태에서 push가 동작하는 것을 알 수 있었다.
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] Background Modes의 Location Updates (0) | 2022.05.30 |
---|---|
[iOS] Xcode에서 Application state 확인하기 (0) | 2022.05.30 |
[iOS] applicationWillTerminate (0) | 2022.05.25 |
[iOS] User에 의해 종료된 경우 vs System에 의해 종료된 경우 (0) | 2022.05.25 |
[iOS] App의 상태 별 Silent Push의 동작 (0) | 2022.05.25 |
댓글