基礎(chǔ)知識
1 android四大組件
? Activity(活動)
? Service(服務(wù))
? BroadcastReceiver(廣播接收器):應(yīng)用間的廣播消息
? ContentProvider(內(nèi)容提供器):實(shí)現(xiàn)應(yīng)用之間共享數(shù)據(jù)
2 邏輯與視圖分離:活動與界面的編寫分開,在布局文件中編寫界面,然后在活動中引入進(jìn)來
3 為什么使用log而不使用System.out:打印日志不可控制、打印時間無法確定、不能添加過濾器、日志沒有級別區(qū)分。
4 布局文件的兩種使用方式:使用Graphical Layout的可視化編輯,使用xml文件方式編輯
5 intent:可以用于在活動、服務(wù)、廣播之間穿梭,一般可用于啟動活動、啟動服務(wù)、發(fā)送廣播
顯式intent:在intent的構(gòu)造函數(shù)中指明要啟動的activity
隱式intent:不在intent中指明Activity,而是指明要匹配的activity的action、category,然后在注冊表里對想要啟動的那個activity的action、category進(jìn)行說明。只有<action><category>同時能夠匹配得上Intent中指定的action和category時,這個活動才能夠啟動。
intent傳遞數(shù)據(jù):putExtra()
6 activity的生命周期
運(yùn)行狀態(tài):可見、前臺運(yùn)行,可以與用戶交互
暫停狀態(tài):可見,不處于返回棧棧頂。
停止?fàn)顟B(tài):完全不可見
銷毀狀態(tài):
onRestart():用于返回上一個活動
如果活動A啟動活動B,在活動B運(yùn)行期間,活動A被系統(tǒng)收回。則在返回活動A的過程中系統(tǒng)并不調(diào)用onRestart,而是使用onCreate重新創(chuàng)建。在這個過程中,可以使用onSaveInstanceState()來保存數(shù)據(jù)。
7 android的啟動模式
(1) standard:默認(rèn)模式:每當(dāng)啟動一個活動,它就會在返回棧中入棧,并處于棧頂,而且不會去檢查該活動是否已經(jīng)有實(shí)例存在于返回棧中了。
(2) singleTop:如果檢測到想要啟動的活動已經(jīng)處于返回棧中且是棧頂,則直接使用,不再創(chuàng)建新的活動實(shí)例。但是如果想要啟動的活動不是棧頂,則會創(chuàng)建新的實(shí)例。
(3) singleTask:如果檢測到想要啟動的活動已經(jīng)處于返回棧中,但不是棧頂,則把其上的所有活動出棧,直接使用該活動實(shí)例。不再創(chuàng)建活動實(shí)例。
(4) singleIntance:在該模式下,系統(tǒng)會啟動一個新的返回棧來管理這個活動。之所以這樣做,是因?yàn)橛行┗顒尤绻朐诙鄠€程序間共享,但是每個程序自己的返回棧自己使用,想要共享的話只能是另外使用一個返回棧,在這個范湖棧里的東西可以供給所有的程序一起使用。
8 ?如何知曉當(dāng)前處于哪一個活動
寫一個新的活動如baseActivity繼承Activity。在這個活動的onCreate函數(shù)里打印出當(dāng)前類名,然后讓該類稱為項(xiàng)目中所有活動類的父類。這樣子在運(yùn)行的時候就會打印出當(dāng)前所處的活動的名字。