1.activity生命周期
第一次啟動(dòng)一個(gè)Activity
依次調(diào)用:onCreate-->onStart-->onResum
情形①
點(diǎn)擊Home鍵返回桌面時(shí),依次調(diào)用:onPause()-->onStop()茧痕,因?yàn)楫?dāng)我們點(diǎn)擊Home鍵退回到桌面時(shí)并沒(méi)有調(diào)用onDestory,因?yàn)榇藭r(shí)Activity只是處于后臺(tái)不可見(jiàn)的狀態(tài)硫豆,并沒(méi)有被銷(xiāo)毀。
從后臺(tái)切回到Activity時(shí)依次調(diào)用onRestart-->onStart-->onResume
情形②屏幕旋轉(zhuǎn)
當(dāng)屏幕旋轉(zhuǎn)的時(shí)候我們發(fā)現(xiàn)Activity先是被銷(xiāo)毀之后又被重建笼呆。而且我們還發(fā)現(xiàn)雖然Activity被重建了熊响,但是控件里的內(nèi)容還在,這是為什么呢诗赌。
??這是因?yàn)楫?dāng)Activity不是正常退出的時(shí)候汗茄,它不僅調(diào)用onPause,onStop铭若,onDestory洪碳,它會(huì)在調(diào)用onStop之前調(diào)用onSaveInstanceState這個(gè)方法來(lái)保存一些數(shù)據(jù),當(dāng)Activity重建的時(shí)候叼屠,這個(gè)方法所存儲(chǔ)的數(shù)據(jù)會(huì)以Bundle作為參數(shù)傳遞給onCreate瞳腌,所以我們可以用參數(shù)來(lái)判斷這個(gè)Activity是新建的還是重建的,如果是重建的镜雨,則可以從Bundle中取出數(shù)據(jù)來(lái)恢復(fù)界面嫂侍。
??那我們可不可以不讓他銷(xiāo)毀并重新創(chuàng)建呢?
??答案是肯定的荚坞,你只需要在AndroidManifest文件中的對(duì)應(yīng)Activity中配置
android:configChanges="keyboardHidden|orientation|screenSize"挑宠,最好這三個(gè)都配置,否則不能適配所有機(jī)型或sdk版本颓影。
設(shè)置之后你會(huì)發(fā)現(xiàn)不會(huì)銷(xiāo)毀和重新創(chuàng)建了各淀,只會(huì)調(diào)用onConfigurationChanged這一個(gè)方法,所以我們可以在里面做一些特殊的操作诡挂。
??當(dāng)然如果你不想讓他旋轉(zhuǎn)就在AndroidManifest文件中的對(duì)應(yīng)Activity中配置android:screenOrientation=”landscape”(橫屏碎浇,portrait是豎屏)临谱;
參照:http://www.reibang.com/p/94e3ab2de108
2.service生命周期,什么情況下使用service奴璃,service的二種啟動(dòng)方式悉默,有什么區(qū)別
3.service、activity溺健、thread生如何通信
4.對(duì)象可以不通過(guò)new么
5.構(gòu)造方法麦牺,static方法钮蛛,static變量的執(zhí)行順序鞭缭,父類(lèi)A有以上三個(gè),子類(lèi)B也有以上三個(gè)魏颓,那么執(zhí)行順序是