iOS11 app生命周期变化Notification调用时机修改问题

背景

在iOS中,我们经常需要去了解App当前的程序状态。所以,我们常用监听app生命周期的Notification来做一些事情。
常用的app生命周期Notification有以下几个:

image.png

调查程序

而iOS11在开发中,我们发现,其中一些的Notification状态有发生变化,所以我写了一段测试程序,来测试调用时机的变化问题。
主要针对以下4种Notification

  • UIApplicationDidBecomeActiveNotification
  • UIApplicationWillResignActiveNotification
  • UIApplicationDidEnterBackgroundNotification
  • UIApplicationWillEnterForegroundNotification

以下为测试程序:

image.png

测试系统:
iOS10 10.3.3(14G60)
iOS11 11.0.3(15A432)

结果输出

1.退到后台,停顿,再回到前台

iOS10:

image.png

iOS11:

image.png

2.退到后台不停止回到前台

iOS10:

在回退动画过程中,明显感觉无法点击app

image.png

iOS11:

在回退动画过程中就可以点击app切到前台

image.png

3.下拉导航栏不松手直接上拉回去

iOS10:

image.png

iOS11:

无输出

4.下拉导航栏,松手,停顿,在上拉回去

iOS10:

image.png

iOS11:

image.png

5.后台状态,点击app(热启),立刻home切回后台

iOS10:

image.png

iOS11:

image.png

实验结果总结

以上有区别的组是:
2.退到后台不停止回到前台
3.下拉导航栏不松手直接上拉回去
5.后台状态,点击app,立刻home切回后台

总结出来iOS11统一的特点是:

  • UIApplicationDidEnterBackgroundNotification需要在回退动画做完后才会调用,中途打断(比如马上唤起app)就不会调用
  • 下拉导航栏操作不会再直接触发UIApplicationWillResignActiveNotification,需要等到下拉动画完成才会触发
  • 热启时候UIApplicationDidBecomeActiveNotification通知会更早的发出来

总结

image.png

参考资料

1.iOS应用生命周期

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • App状态的代理事件 新建一个Signle View Application后,系统会自动创建AppDelegat...
    恋空K阅读 7,534评论 0 3
  • 自从古老的iOS4以来,当用户点击home建的时候,你可以使你的APP们在内存中处于suspended(挂起)状态...
    木易林1阅读 8,404评论 1 4
  • 原文出处: http://www.androidchina.net/6174.html Notification在...
    木木00阅读 14,235评论 3 32
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 10,050评论 0 12
  • 秋天到了,秋风起了,叶子落了。落叶飘零,铺在公路上,密密麻麻。等到有车飞驰而过,路上的叶子就又跟随起舞,蹦蹦跳跳,...
    短发的女子阅读 1,462评论 0 1