在AppDelegate中使用背景/前景方法
-
27-10-2019 - |
题
我正计划在我的应用程序中实现多任务。
我可以在这里看到很多方法可以在AppDelegate
中执行此操作,例如applicationWillResignActive
,applicationDidEnterBackground
,applicationWillEnterForeground
,...
但是...。我看不到应该使用它们的方式,也看不到为什么它们不在ViewControllers中。也看不到它们的用途。
我的意思是:当应用进入后台时,我不知道我的用户在哪个视图上。 然后,当应用程序进入前台时,我将如何知道该怎么做以及可能调用什么来更新视图?例如
如果这些方法在每个视图控制器中都存在,我会理解的,但是在这里,我看不到它们可以用于具体方式...
您能帮助我理解在这些方法中实现事物的方法吗?
解决方案
当应用程序在后台运行时,每个对象都会收到一个UIApplicationDidEnterBackgroundNotification
通知。因此,要在应用程序进入后台运行一些代码,您只需要在所需的位置收听该通知即可:
通用标签
当您不再需要监听时,别忘了释放监听器: 通用标签
最好的是,您可以通过以下通知进行相同的操作:
-
UIApplicationDidEnterBackgroundNotification
-
UIApplicationWillEnterForegroundNotification
-
UIApplicationWillResignActiveNotification
-
UIApplicationDidBecomeActiveNotification
其他提示
它们不在您的任何视图控制器中,因为iOS采用“委托”设计模式,可以确保在需要时可以在类(在本例中为应用程序的App Delegate)上触发方法。
作为一个学习过程,为什么不将NSLog放入这些方法中以查看它们何时被触发? 通用标签
不隶属于 StackOverflow