1.Activity生命周期
生命周期有七個方法
onCreate() , onStart(), onResume() , onPause(), onStop(),onRestart(), onDestroy();
2.onStart()和onResume()/onPause()和onStop()的區(qū)別?
在這些方法中,onStart()方法處于可見但不處于前臺,而onResume()處于可見且在前臺谢鹊,另外的兩種方法和onStart和onResume()是相對應的蛔外,同理
3.Activity A啟動另一個Activity B會回調哪些方法谒养?如果啟動的是一個Dialog呢?
1.在A啟動B時驻仅,首先A會調用自己的onPause()方法乏奥,然后B調用onCreate()→onStart()→onResume()→A的onStop()方法
打開一個新Activity:
A的onPause() -->B 的Activity的onCreate()-->onStart()-->onResume()-->A的Activity的onStop()
2.啟動的如果是對話框Dialog,則只會執(zhí)行A的onPause()方法摆舟,而不會執(zhí)行A的onStop()方法,這時候A只處于暫停狀態(tài)還沒有處于停止狀態(tài)
A的Activity的onPause()-->B的onCreate()-->onStart()-->onResume()
4.onSaveInstanceState()方法邓了?何時會調用?
這個方法在活動被回收的時候調用盏檐,用于保存活動的臨時數(shù)據(jù),在活動重建之后可以恢復數(shù)據(jù)
5.onSaveInstanceState()與onPause()的區(qū)別驶悟?
onSaveInstenceState()用于保存臨時數(shù)據(jù),而onPause()方法中用于保存持久化數(shù)據(jù)
6.配置改變時Activity的重建
在切換手機橫豎屏時材失,Activity會被殺死重建痕鳍,這個時候會用到我們上面講的onSaveInstanceState()方法
會先調用onSaveInstanceState來保存切換時的數(shù)據(jù),接著銷毀當前的Activity,然后重新創(chuàng)建一個Activity笼呆,再調用onRestoreInstanceState恢復數(shù)據(jù)熊响。
7.Activity的四種啟動模式?
1.standard 標準模式
?每當一個新的活動啟動時诗赌,棧中都會創(chuàng)建一個新的實例汗茄,不管棧中是否存在此活動
2.singerTop 棧頂復用模式
啟動活動時,如果發(fā)現(xiàn)活動在棧中且處于棧頂位置铭若,則棧中不會創(chuàng)建新的實例洪碳,并回調onNewIntent(intent)方法。
3.singerTask 棧內復用模式
啟動活動時如果活動在棧中存在叼屠,就不會重建瞳腌,而是把此活動之前的棧頂活動全部出棧,讓活動處于棧頂镜雨,如果不存在則創(chuàng)建新的實例
4.singerInstance 單實例模式
具有此模式的Activity只能單獨位于一個任務棧中嫂侍,且此任務棧中只有唯一一個實例。
8.如何啟動其他應用的Activity荚坞?
Intent用于啟動其他的活動挑宠,又分為顯示啟動和隱式啟動,顯示啟動直接用活動名啟動
隱式啟動通過Manifest中的action和category信息去啟動新的活動