Android Activity 生命周期中onStart()和onResume()的区别
首先了解Activity的四種狀態(tài)
Running狀態(tài):一個(gè)新的Activity啟動(dòng)入棧后,它在屏幕最前端,處于棧的最頂端,此時(shí)它處于可見并可和用戶交互的激活狀態(tài)。
Paused狀態(tài):當(dāng)Activity被另一個(gè)透明或者Dialog樣式的Activity覆蓋時(shí)的狀態(tài)。此時(shí)它依然與窗口管理器保持連接,系統(tǒng)繼續(xù)維護(hù)其內(nèi)部狀態(tài),它仍然可見,但它已經(jīng)失去了焦點(diǎn),故不可與用戶交互。
Stopped狀態(tài):當(dāng)Activity不可見時(shí),Activity處于Stopped狀態(tài)。當(dāng)Activity處于此狀態(tài)時(shí),一定要保存當(dāng)前數(shù)據(jù)和當(dāng)前的UI狀態(tài),否則一旦Activity退出或關(guān)閉時(shí),當(dāng)前的數(shù)據(jù)和UI狀態(tài)就丟失了。
Killed狀態(tài):Activity被殺掉以后或者被啟動(dòng)以前,處于Killed狀態(tài)。這是Activity已從Activity堆棧中移除,需要重新啟動(dòng)才可以顯示和使用。
4種狀態(tài)中,Running狀態(tài)和Paused狀態(tài)是可見的,Stopped狀態(tài)和Killed狀態(tài)時(shí)不可見的。
?
onStart()和onResume()的區(qū)別
onStart()是activity界面被顯示出來的時(shí)候執(zhí)行的,用戶可見,包括有一個(gè)activity在他上面,但沒有將它完全覆蓋,用戶可以看到部分activity但不能與它交互
onResume()是當(dāng)該activity與用戶能進(jìn)行交互時(shí)被執(zhí)行,用戶可以獲得activity的焦點(diǎn),能夠與用戶交互。
onStart()通常就是onStop()(也就是用戶按下了home鍵,activity變?yōu)楹笈_(tái)后),之后用戶再切換回這個(gè)activity就會(huì)調(diào)用onRestart()而后調(diào)用onStart()
onResume()是onPause()(通常是當(dāng)前的acitivty被暫停了,比如被另一個(gè)透明或者Dialog樣式的Activity覆蓋了),之后dialog取消,activity回到可交互狀態(tài),調(diào)用onResume()。
?
引申:經(jīng)測(cè)試,onPause()方法在彈出Dialog時(shí)不會(huì)被調(diào)用,而在被另一個(gè)透明或者Dialog樣式的Activity覆蓋時(shí)才會(huì)被調(diào)用。
參考:Activity的生命周期之Pause(暫停)和Resume(重新返回)
附Activity生命周期
原文鏈接:http://www.cnblogs.com/fansen/p/5667450.html
?
總結(jié)
以上是生活随笔為你收集整理的Android Activity 生命周期中onStart()和onResume()的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python导入运行的当前模块报错
- 下一篇: websocket连接mysql_web