背景
在iOS中所计,我們經(jīng)常需要去了解App當(dāng)前的程序狀態(tài)婶溯。所以跌穗,我們常用監(jiān)聽app生命周期的Notification來做一些事情痘系。
常用的app生命周期Notification有以下幾個:
調(diào)查程序
而iOS11在開發(fā)中菲嘴,我們發(fā)現(xiàn),其中一些的Notification狀態(tài)有發(fā)生變化汰翠,所以我寫了一段測試程序龄坪,來測試調(diào)用時機(jī)的變化問題。
主要針對以下4種Notification
- UIApplicationDidBecomeActiveNotification
- UIApplicationWillResignActiveNotification
- UIApplicationDidEnterBackgroundNotification
- UIApplicationWillEnterForegroundNotification
以下為測試程序:
測試系統(tǒng):
iOS10 10.3.3(14G60)
iOS11 11.0.3(15A432)
結(jié)果輸出
1.退到后臺复唤,停頓健田,再回到前臺
iOS10:
iOS11:
2.退到后臺不停止回到前臺
iOS10:
在回退動畫過程中,明顯感覺無法點擊app
iOS11:
在回退動畫過程中就可以點擊app切到前臺
3.下拉導(dǎo)航欄不松手直接上拉回去
iOS10:
iOS11:
無輸出
4.下拉導(dǎo)航欄佛纫,松手妓局,停頓总放,在上拉回去
iOS10:
iOS11:
5.后臺狀態(tài),點擊app(熱啟)好爬,立刻home切回后臺
iOS10:
iOS11:
實驗結(jié)果總結(jié)
以上有區(qū)別的組是:
2.退到后臺不停止回到前臺
3.下拉導(dǎo)航欄不松手直接上拉回去
5.后臺狀態(tài)局雄,點擊app,立刻home切回后臺
總結(jié)出來iOS11統(tǒng)一的特點是:
- UIApplicationDidEnterBackgroundNotification需要在回退動畫做完后才會調(diào)用存炮,中途打斷(比如馬上喚起app)就不會調(diào)用
- 下拉導(dǎo)航欄操作不會再直接觸發(fā)UIApplicationWillResignActiveNotification炬搭,需要等到下拉動畫完成才會觸發(fā)
- 熱啟時候UIApplicationDidBecomeActiveNotification通知會更早的發(fā)出來