Activity生命周期
- 正常啟動的Activity的生命周期
- onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()
仔細(xì)觀察會發(fā)現(xiàn)activity的生命周期是對稱的(這樣很好記憶)
- onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()
- 當(dāng)一個正常啟動后的Activity別還可見,但是不可操作時(比如彈出了一個對話框再activity之上,或者出現(xiàn)了一個透明的activity再原來的activity之上)
- 彈出對話框或上面添加一個透明activity->onPause()->關(guān)閉對話框或移除透明activity->onResume()
- Pause就是暫停的意思,就好比你看視頻,點擊了暫停按鈕,視頻停止了,不再繼續(xù)播放,在安卓里面onPause就是失去焦點,對activity來說就是雖然你還能看見我,但是你不能對我進(jìn)行操作了。Resume就是又獲取了焦點,去掉了上方的遮擋當(dāng)然能對activity進(jìn)行操作啦
- 當(dāng)一個正常啟動的Activity切換到后臺(當(dāng)前Activity不可見),再切換回來(當(dāng)前Activity又可見)
- 切換到后臺->onPause()->onStop()->切換回來->onStart()->onResume()
- stop就是停止,相對activity來說就是停止對你的服務(wù),activity被切換到后臺,不可見了,start則是再次可見,就像你沖后臺切換回來或者你從一個activity返回到之前打開的一個activity,有細(xì)心的人可能會發(fā)現(xiàn)為什么activity不可見為什么會調(diào)用onPause方法,你想想,這個activity都不可見了,你還能獲取到他的焦點對他進(jìn)行操作嗎,當(dāng)然不行了,所以當(dāng)一個activity不可見的時候會先失去焦點再不可見,同時如果可見執(zhí)行順序應(yīng)該是onStart()->onResume(),獲取焦點又怎么到后面了?你想想如果界面都沒看見,你就能點擊了?可能嗎?所以這個不能進(jìn)行對稱記憶。
附上官方聲明周期圖

activity生命周期.png
橫豎屏切換生命周期
橫豎屏切換可以參考文章
https://blog.csdn.net/qq_36713816/article/details/80538467
最后補(bǔ)充一點,我們通過設(shè)置android:screenOrientation屬性可以指定當(dāng)前activity的屏幕方向。
android:screenOrientation="portrait" 縱向
android:screenOrientation="landscape" 橫向