【iOS 开发】UIApplicationDelegate 中两

作者: KyXu | 来源:发表于2017-11-01 16:44 被阅读139次

01 - app 的第一个执行代码的机会是什么

新建工程的时候,Xcode 默认创建的 AppDelegate 文件里面会有 UIApplicationDelegate 的 6 个代理方法,其中第一个是 application:didFinishLaunchingWithOptions:,我们通常会在这里进行 SDK 的初始化以及其他一些配置等等,但是 app 的第一个执行代码的机会其实是 application:willFinishLaunchingWithOptions:,官方注解是:

This method is your app’s first chance to execute code at launch time.

这个知识点可以用于面试,以及对于一些对初始化时机有要求的 SDK 配置的 bug 排查。


02 - 应该在哪个回调里面存储数据

applicationDidEnterBackground
官方已经写清注释,应该在 applicationDidEnterBackground: 来进行数据的保护性存储,但是考虑一种特殊情况:直接连按 home 键,然后上划杀死 app,这个方法还会调用吗? State changes in an iOS app

答案是会的,应用从 active 状态至 suspended 状态,是必须经过 background 状态的,我们应该按照官方规范,在 applicationDidEnterBackground: 方法而不是在可能被调用更多次的 applicationWillResignActive: 方法里面进行数据的保护性存储。


参考链接:https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html

相关文章

网友评论

  • 时间在改变:您好,刚看到您的博文,我有保存数据的需求,之前我在杀进程和进入后台的时候都通知数据进行储存,看到您的博文后,我想着自己是否多发了一次通知,已进行了修改,多谢!

本文标题:【iOS 开发】UIApplicationDelegate 中两

本文链接:https://www.haomeiwen.com/subject/plsgpxtx.html