Swift的applicationDidBecomeActive观察者UIApplicationDidBecomeActive没有被调用。

7 浏览
0 Comments

Swift的applicationDidBecomeActive观察者UIApplicationDidBecomeActive没有被调用。

我正在尝试解决以下问题:\n- 如果用户强制退出应用程序,然后再次进入应用程序,我想从Core Data中获取一些数据,然后在视图控制器上显示它。\n我尝试使用以下观察者:\nnotification.addObserver(self, selector: #selector(reloadTimerOnAppStart), \nname: NSNotification.Name.UIApplicationDidBecomeActive, \nobject: nil)\n\n这个观察者在每次应用程序加载时都有效,但第一次加载时除外。\n例如:\n- 强制退出应用程序\n- 运行应用程序(什么都不发生)\n- 关闭应用程序\n- 打开应用程序(选择器有效)\n它只是第一次无法正常工作。\n我在错误的位置实例化了吗?它应该发生在appDelegate内部:\nfunc applicationDidBecomeActive(_ application: UIApplication) {\n // 在应用程序不活动时暂停的任务重新启动。如果应用程序以前在后台运行,可以刷新用户界面。\n // 检查数据库是否有任何未完成的运行任务\n // 如果有,则启动单例计时器\n // 在视图上相应地显示。\n} \n\n根据applicationWillEnterForeground vs. applicationDidBecomeActive, applicationWillResignActive vs. applicationDidEnterBackground上票数最高的答案,应该调用applicationDidBecomeActive,所以我有点不确定发生了什么。\n另外,如果在appDelegate.swift文件的这个函数中放置一个UIAlert:\nfunc applicationDidBecomeActive(_ application: UIApplication) {\n AlertUser()\n // 使用UIAlertController //\n} \n\n然后这个警告每次都会出现!即使是在应用程序强制退出后的第一次加载,希望能得到一些帮助,以便我可以在视图控制器上实际运行它。

0
0 Comments

我认为这个方法无法被调用是因为你强制关闭了应用程序,这会破坏应用程序的生命周期,也许这对你没有多大帮助,但请思考一下。

我不太确定,因为你仍然可以在appDelegate.swift的applicationDidBecomeActive方法中看到警告。

0