Activity
四大組件之一脓规,通常一個(gè)用戶交互界面對應(yīng)一個(gè)Activity。 Activity 是Context的子類险领,同時(shí)實(shí)現(xiàn)了window.callback和 keyevent.callback侨舆,可以處理與窗體用戶交互的事件。常見的 Activity 類型有 FragmentActivitiy绢陌,ListActivity挨下,TabAcitivty 等。如果界面有共同的特點(diǎn)或者功能的時(shí)候脐湾,還會自己定義一個(gè) BaseActivity臭笆。
</br>
請描述一下Activity的生命周期
Activity 從創(chuàng)建到銷毀有多種狀態(tài),從一種狀態(tài)到另一種狀態(tài)時(shí)會激發(fā)相應(yīng)的回調(diào)方法秤掌,這些回調(diào)方法包括:onCreate愁铺、 onStart 、onResume闻鉴、onPause 帜讲、onStop、 onDestroy椒拗。其實(shí)這些方法都是兩兩對應(yīng)的似将,onCreate 創(chuàng)建與 onDestroy 銷毀;onStart 可見與 onStop 不可見蚀苛;onResume 可編輯(即焦點(diǎn))與 onPause在验;這 6個(gè)方法是相對應(yīng)的,那么就只剩下一個(gè) onRestart 方法了堵未,它是在在 Activity 被 onStop 后腋舌,但是沒有被 onDestroy,在再次啟動此 Activity 時(shí)就調(diào)用 onRestart(而不再調(diào)用 onCreate)方法渗蟹;如果被 onDestroy 了块饺,則是調(diào)用 onCreate 方法赞辩。
</br>
兩個(gè)Activity之間跳轉(zhuǎn)必然會執(zhí)行哪幾個(gè)方法
一般情況下比如說有兩個(gè) activity,分別叫 A,B,當(dāng)在 A 里面激活 B 組件的時(shí)候, A 會調(diào)用 onPause()方法,然后 B 調(diào)用onCreate()、onStart()授艰、onResume()辨嗽。這個(gè)時(shí)候 B 覆蓋了窗體, A 會調(diào)用 onStop()方法.。如果 B 是個(gè)透明的,或者是對話框的樣式, 就不會調(diào)用 A 的onStop()方法淮腾。
</br>
Activity橫豎屏切換時(shí)的生命周期
此時(shí)的生命周期跟清單文件里的配置有關(guān)系糟需。
1、不設(shè)置 Activity 的 android:configChanges 時(shí)谷朝,切屏?xí)匦抡{(diào)用各個(gè)生命周期默認(rèn)首先銷毀當(dāng)前 Activity洲押,然后重新加載。當(dāng)橫豎屏切換時(shí)先執(zhí)行 onPause/onStop 方法圆凰,然后是onCreate杈帐、onStart、onResume专钉。
2挑童、設(shè)置 Activity 的android:configChanges="orientation|keyboardHidden|screenSize"時(shí),切屏不會重新調(diào)用各個(gè)生命周期驶沼,只會執(zhí)行 onConfigurationChanged 方法炮沐。
3、通常在游戲開發(fā), 屏幕的朝向都是寫死的回怜。
</br>