Actiity
1.Activity生命周期
- onCreate():當(dāng)Activity第一次創(chuàng)建的時候調(diào)用店茶。
- onStart():Activity已經(jīng)顯示,但沒有焦點。
- onResume():Activity可以進(jìn)行交互了恃鞋。
- onPause():Activity失去焦點,無法再與用戶交互痛单,但可見。
- onStop():Activity不可見狀態(tài)劲腿。
- onDestroy():Activity被銷毀旭绒。
- onRestart():Activity從不可見變成可見時會執(zhí)行此方法。
2.Activity的四種啟動模式(每次看完網(wǎng)上的解釋焦人,然后挥吵,然后呢.....?)
- standard :每次啟動activity都會創(chuàng)建一個activity實例花椭,不管它是否存在
- singleTop :當(dāng)啟動activity的時候忽匈,如果該activity不在棧頂,會創(chuàng)建一個activity實例矿辽,如果他在棧頂存在丹允,執(zhí)行他的onNewIntent()
- singeTask :第一次啟動創(chuàng)建實例,以后再啟動執(zhí)行他的onNewIntent()操作袋倔,并銷毀棧中在他上面的其他實例
- singleInstance:第一次啟動創(chuàng)建實例雕蔽,在啟動執(zhí)行onNewIntent(),并且單獨在一個棧中奕污。
onNewIntent()的執(zhí)行(非生命周期中):
- 啟動模式singletop(當(dāng)前activity在棧頂時)以及 singletask會調(diào)用onNewIntent()萎羔。
四種模式適用的情況:
- standard:用的最多的默認(rèn)的跳轉(zhuǎn)液走。
- singleTop:1.接收通知后跳轉(zhuǎn)顯示頁面 2.搜索界面自己跳轉(zhuǎn)自己調(diào)用onNewIntent()碳默。
- singeTask : 反正就一個贾陷。(登陸頁面?主頁嘱根?)
- singleInstance : 一次性玩具髓废?
- 額外補(bǔ)充一個 Intent.FLAG_ACTIVITY_CLEAR_TASK : 清除所有棧中老的Activity(清道夫?)该抒。
3.未知慌洪,待補(bǔ)充。凑保。冈爹。。欧引。
Fragment(碎片)
1.Fragment是依賴于Activity的频伤,不能獨立存在的!Vゴ恕憋肖!
有次面試,面試官問了一個問題婚苹,我蒙蔽了半天 :fragment能否獨立存在岸更。what fk is that ?!
按理說是不能的膊升,但看著面試官邪惡的表情怎炊,我居然說:應(yīng)該不能。廓译。结胀。可怕 责循,告辭
2.Fragment的生命周期
- onAttach():Fragment和Activity相關(guān)聯(lián)時調(diào)用糟港。可通過該方法獲取Activity引用院仿,還可通過getArguments()獲取參數(shù)秸抚。
- onCreate():Fragment被創(chuàng)建時調(diào)用。
- onCreateView():創(chuàng)建Fragment的布局歹垫。
- onActivityCreated():當(dāng)Activity完成onCreate()時調(diào)用剥汤。
- onStart():當(dāng)Fragment可見時調(diào)用。
- onResume():當(dāng)Fragment可見且可交互時調(diào)用排惨。
- onPause():當(dāng)Fragment不可交互但可見時調(diào)用吭敢。
- onStop():當(dāng)Fragment不可見時調(diào)用。
- onDestroyView():當(dāng)Fragment的UI從視圖結(jié)構(gòu)中移除時調(diào)用暮芭。
- onDestroy():銷毀Fragment時調(diào)用鹿驼。
- onDetach():當(dāng)Fragment和Activity解除關(guān)聯(lián)時調(diào)用欲低。
3.Fragment與Activity的混合生命周期
- onCreate()
Activity onCreate...
Fragment onAttach...
Fragment onCreate...
Fragment onCreateView...
Fragment onActivityCreated... - onDestroy
Fragment onDestroyView...
Fragment onDestroy...
Fragment onDetach...
Activity onDestroy... - 除此之外初始化的生命周期都是activity先走,pause()等都是fragment先走畜晰。
4.Fragment與Activity相互私聊
- Handle : 在Activity中定義一個handle并且在fragment 的onAttach()生命周期中獲取 (fragment通知Activity)砾莱。
- 廣播(????呵呵) (相互私聊)
- 接口方案: 與Handle方案相似。(fragment通知Activity)
- context強(qiáng)轉(zhuǎn)activity調(diào)用方法凄鼻。(fragment通知Activity)
- 觀察者模式(也只能單向腊瑟??块蚌?闰非?)
- EventBus:利用反射,好用不要錢 峭范,目前個人覺得最好的方案河胎。(相互私聊)