iOS 应用程序挂起、复原与终止

深碍√TFBOYSˉ_ 2022-06-01 00:05 365阅读 0赞

挂起

当有电话进来或者锁屏,这时你的应用程会挂起,在这时,UIApplicationDelegate委托会收到通知,调用 applicationWillResignActive 方法,你可以重写这个方法,做挂起前的工作,比如关闭网络,保存数据。

  1. - (void)applicationWillResignActive:(UIApplication*)application{
  2. /*添加你自己的挂起前准备代码*/
  3. }

复原

当程序复原时,另一个名为 applicationDidBecomeActive 委托方法会被调用,在此你可以通过之前挂起前保存的数据来恢复你的应用程序:

  1. - (void)applicationDidBecomeActive:(UIApplication*)application{
  2. /*添加你的恢复代码*/
  3. }

注意:应用程序在启动时,在调用了 applicationDidFinishLaunching 方法之后也会调用 applicationDidBecomeActive 方法,所以你要确保你的代码能够分清复原与启动,避免出现逻辑上的bug。

终止

当用户按下按钮,或者关机,程序都会被终止。当一个程序将要正常终止时会调用 applicationWillTerminate 方法。但是如果长主按钮强制退出,则不会调用该方法。这个方法该执行剩下的清理工作,比如所有的连接都能正常关闭,并在程序退出前执行任何其他的必要的工作:

  1. - (void)applicationWillTerminate:(UIApplication*)application{
  2. /*在这里添加退出前的清理代码以及其他工作代码*/
  3. }
  4. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  5. {
  6. NSLog(@"\n ===> 程序开始 !");
  7. return YES;
  8. }
  9. - (void)applicationWillResignActive:(UIApplication *)application
  10. {
  11. NSLog(@"\n ===> 程序暂行 !");
  12. }
  13. - (void)applicationDidEnterBackground:(UIApplication *)application
  14. {
  15. NSLog(@"\n ===> 程序进入后台 !");
  16. }
  17. - (void)applicationWillEnterForeground:(UIApplication *)application
  18. {
  19. NSLog(@"\n ===> 程序进入前台 !");
  20. }
  21. - (void)applicationDidBecomeActive:(UIApplication *)application
  22. {
  23. NSLog(@"\n ===> 程序重新激活 !");
  24. }
  25. - (void)applicationWillTerminate:(UIApplication *)application
  26. {
  27. NSLog(@"\n ===> 程序意外暂行 !");
  28. }

首次运行:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

- (void)applicationDidBecomeActive:(UIApplication *)application

首次关闭(home):
- (void)applicationWillResignActive:(UIApplication *)application

- (void)applicationDidEnterBackground:(UIApplication *)application

再次运行:
- (void)applicationWillEnterForeground:(UIApplication *)application

- (void)applicationDidBecomeActive:(UIApplication *)application

再次关闭:
- (void)applicationWillResignActive:(UIApplication *)application

- (void)applicationDidEnterBackground:(UIApplication *)application

发表评论

表情:
评论列表 (有 0 条评论,365人围观)

还没有评论,来说两句吧...

相关阅读