草庐IT

ios - Swift applicationDidBecomeActive 观察者 UIApplicationDidBecomeActive 没有被调用

coder 2023-09-10 原文

我正在尝试解决以下问题: - 如果用户强制退出应用程序,然后在强制退出后进入应用程序,我想从核心数据中获取一些数据,然后将其显示在 View Controller 上。

我尝试使用以下观察者:

notification.addObserver(self, selector: #selector(reloadTimerOnAppStart), 
name: NSNotification.Name.UIApplicationDidBecomeActive, 
object: nil)

此观察者在每次应用加载时工作,应用首次加载时除外。

例如 - 强制退出应用程序 - 运行应用程序(没有任何反应) - 关闭应用程序 - 打开应用程序(选择器起作用)

它只是第一次不起作用。

我是不是在错误的地方实例化了它?它应该发生在 appDelegate 内部吗:

func applicationDidBecomeActive(_ application: UIApplication) {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    // check if db has any outstanding running tasks
    // if it does then start the singleton timer
    // display it accordingly on the view.       
} 

根据此处投票最多的答案 applicationWillEnterForeground vs. applicationDidBecomeActive, applicationWillResignActive vs. applicationDidEnterBackground

applicationDidBecomeActive 应该被调用,所以我只是有点不确定发生了什么。

在另一个注意事项中,如果你在 appDelegate.swift 文件的这个函数中放置一个 UIAlert

func applicationDidBecomeActive(_ application: UIApplication) {
    AlertUser()
    // with UIAlertController //
}  

然后每次都会出现这个提示!即使在应用程序强制退出后的第一次加载时,也希望能得到一些关于如何解决这个问题的帮助,这样我才能真正让 View Controller 工作。

最佳答案

我认为无法调用该方法,因为您正在强制关闭应用程序,这会破坏应用程序的生命周期,也许这对您没有太大帮助,但请想一想。

关于ios - Swift applicationDidBecomeActive 观察者 UIApplicationDidBecomeActive 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44313207/

有关ios - Swift applicationDidBecomeActive 观察者 UIApplicationDidBecomeActive 没有被调用的更多相关文章

随机推荐