SwiftUI应用程序生命周期

时间:2020-09-23 16:08:09

标签: ios swiftui badge

在我的第一个SwiftUI应用中,我启用了远程通知和后台进程。 我确实添加了一个AppDelegate类来支持通知。

这些通知会将应用徽章设置为适当的值。

由于此应用启用了这些后台模式,因此一些生命周期事件不起作用:

  • applicationDidBecomeActive
  • applicationWillResignActive
  • applicationDidEnterBackground
  • applicationWillEnterForeground

问题:我在哪里/如何重置徽章?

1 个答案:

答案 0 :(得分:0)

这是您观察didBecomeActiveNotification的方法:

@main
struct TestApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
                .onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in
                    UIApplication.shared.applicationIconBadgeNumber = 0
                }
        }
    }
}

您可以用相同的方式观察其他通知。


或者,您可以使用@EnvironmentObject来跟踪应用程序状态: