Activity啟動(dòng)模式:
1.standard啟動(dòng)模式:應(yīng)用的默認(rèn)啟動(dòng)模式,每次都創(chuàng)建新的實(shí)例浩销。
2.singleTop啟動(dòng)模式:如果發(fā)現(xiàn)有對(duì)應(yīng)的Activity實(shí)例正位于棧頂听哭,則重復(fù)利用,不再生成新的實(shí)例陆盘,否則生成新的實(shí)例隘马。這種啟動(dòng)模式通常適用于接受到消息后顯示的界面,例如QQ接受到消息后彈出Activity酸员,如果一次來(lái)10條消息讳嘱,總不能一次彈10個(gè)Activity酿愧。
3.singleTask啟動(dòng)模式:如果發(fā)現(xiàn)有對(duì)應(yīng)的Activity實(shí)例,則使此Activity實(shí)例之上的其他Activity實(shí)例統(tǒng)統(tǒng)出棧叛氨,使此Activity實(shí)例成為棧頂對(duì)象棘伴,顯示到幕前。
4.singleInstance單一實(shí)例模式:整個(gè)手機(jī)操作系統(tǒng)里面只有一個(gè)實(shí)例存在焊夸,并且這個(gè)實(shí)例獨(dú)立運(yùn)行在一個(gè)task中,并且在該task中不允許有別的Activity存在饭冬。應(yīng)用時(shí)如果應(yīng)用1的任務(wù)棧中創(chuàng)建了設(shè)定為singleInstance的Activity實(shí)例揪阶,如果應(yīng)用2也要激活該Activity,則不需要?jiǎng)?chuàng)建炊苫,兩應(yīng)用共享該Activity實(shí)例冰沙。應(yīng)用場(chǎng)景:呼叫來(lái)電界面,鬧鈴提醒拓挥,將鬧鈴提醒與鬧鈴設(shè)置分離。singleInstance不要用于中間頁(yè)面当叭,如果用于中間頁(yè)面愿棋,跳轉(zhuǎn)會(huì)有問(wèn)題,比如:A -> B (singleInstance) -> C糠雨,完全退出后,在此啟動(dòng)琅攘,首先打開(kāi)的是B。
Fragment優(yōu)勢(shì):
1.fragment體現(xiàn)了碎片化管理哨查,能夠更好的解耦數(shù)據(jù)剧辐,獨(dú)立的生命周期,更有利于調(diào)試與功能修荧关。
2.很多項(xiàng)目大量使用Fragment做視圖,組裝更靈活加勤,開(kāi)銷比Activity小同波。
3.在Fragment中監(jiān)聽(tīng)返回鍵事件,可以避開(kāi)多重Fragment重復(fù)疊加頁(yè)面的困擾未檩。
4.解決Activity間的切換不流暢,輕量切換
Fragment相關(guān)的主要操作:
1.FragmentTransaction transaction = fm.benginTransatcion();//開(kāi)啟一個(gè)事務(wù)
2.transaction.add()校赤;往Activity中添加一個(gè)Fragment筒溃。
3.transaction.remove()沾乘;從Activity中移除一個(gè)Fragment,如果被移除的Fragment沒(méi)有添加到回退棧(回退棧后面會(huì)詳細(xì)說(shuō))歪玲,這個(gè)Fragment實(shí)例將會(huì)被銷毀掷匠。
4.transaction.replace();使用另一個(gè)Fragment替換當(dāng)前的钙皮,實(shí)際上就是remove()然后add()的合體。
5.transaction.hide()短条;隱藏當(dāng)前的Fragment,僅僅是設(shè)為不可見(jiàn)茸时,并不會(huì)銷毀贡定。
6.transaction.show(); 顯示之前隱藏的Fragment可都。
7.detach()缓待;將此Fragment從Activity中分離,會(huì)銷毀其布局渠牲,但不會(huì)銷毀該實(shí)例命斧。
8.attach();將從Activity中分離的Fragment嘱兼,重新關(guān)聯(lián)到該Activity国葬,重新創(chuàng)建其視圖層次。
9.transaction.addToBackStack(null)芹壕;用于監(jiān)聽(tīng)手機(jī)的返回鍵事件汇四,但是要在transaction.commit()方法之前調(diào)用踢涌。Fragment的返回棧由Activity管理通孽,Activity的返回棧由系統(tǒng)管理,點(diǎn)擊返回鍵睁壁,兩者都執(zhí)行銷毀事件背苦。