android面試題總結(jié)加強再加強版_第1頁
android面試題總結(jié)加強再加強版_第2頁
android面試題總結(jié)加強再加強版_第3頁
android面試題總結(jié)加強再加強版_第4頁
android面試題總結(jié)加強再加強版_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、android面試題總結(jié)加強再加強版android面試題總結(jié)加強再加強版 篇一: andrid面試題總結(jié)加強再加強版 andrid面試題總結(jié)加強再加強版 (一) 201X-08-11 10:47:38 我來說兩句 收藏 我要投稿 在加強版的基礎(chǔ)上又再加強的andrid應(yīng)用面試題集 有些補充略顯臃腫,只為學(xué)習(xí) 1.activity的生命周期。 方法 描述 可被殺死 下一個 nCreate 在activity第一次被創(chuàng)建的時候調(diào)用。這里是你做所有初始化設(shè)置的地方創(chuàng)建視圖、設(shè)置布局、綁定數(shù)據(jù)至列表等。如果曾經(jīng)有狀態(tài)記錄(參閱后述Saving Activity State。),則調(diào)用此方法時會傳入一個

2、包含著此activity以前狀態(tài)的包對象做為參數(shù)。 總繼之以nStart。 否 nStart nRestart 在activity停止后nStp,在再次啟動之前被調(diào)用。 總繼之以nStart。 否 nStart nStart 當(dāng)activity正要變得為用戶所見時被調(diào)用。 當(dāng)activity轉(zhuǎn)向前臺時繼以nResume,在activity變?yōu)殡[藏時繼以nStp。 否 nResume r nStp nResume 在activity開始與用戶進行交互之前被調(diào)用。此時activity位于堆棧頂部,并接受用戶輸入。 繼之以nPause。 否 nPause nPause 當(dāng)系統(tǒng)將要啟動另一個activ

3、ity時調(diào)用。此方法主要用來將未保存的變化進行持久化,停止類似動畫這樣耗費CPU的動作等。這一切動作應(yīng)該在短時間內(nèi)完成,因為下一個activity必須等到此方法返回后才會繼續(xù)。 當(dāng)activity重新回到前臺是繼以nResume。當(dāng)activity變?yōu)橛脩舨豢梢姇r繼以nStp。 是 nResume r nStp nStp 當(dāng)activity不再為用戶可見時調(diào)用此方法。這可能發(fā)生在它被銷毀或者另一個activity(可能是現(xiàn)存的或者是新的)回到運行狀態(tài)并覆蓋了它。 如果activity再次回到前臺跟用戶交互則繼以nRestart,如果關(guān)閉 activity則繼以nDestry。 是 nResta

4、rt r nDestry nDestry 在activity銷毀前調(diào)用。這是activity接收的最后一個調(diào)用。這可能發(fā)生在activity結(jié)束(調(diào)用了它的 finish 方法)或者因為系統(tǒng)需要空間所以臨時的銷毀了此acitivity的實例時。你可以用isFinishing 方法來區(qū)分這兩種情況。 是 nthing (補充) 1、nCreate:當(dāng)Activity被創(chuàng)建的時候調(diào)用(第一次)。操作: 設(shè)置布局文件,初始化視圖,綁定數(shù)據(jù)文件等。 2、nStart:當(dāng)Activity能被我們看到的時候。 3、nResume:當(dāng)Activity獲得用戶的焦點的時候,就是能被用戶操作的時候。 4、nPa

5、usepause暫停的意思:Activity暫停。應(yīng)用程序啟動了另一個Activity的時候。例子: 來了一個電話,系統(tǒng)啟動了電話Activity。在這個函數(shù)里要做的就是把Activity的數(shù)據(jù)保存起來,當(dāng)接完電話的時候,再把這些數(shù)據(jù)讀出來,把原來的Activity還原出來。 5、nstp: 當(dāng)?shù)诙€Activity把第一個Activity完全遮擋住了的時候。對話框并沒有把原來的Activity完全遮擋起來,不會調(diào)用。 6、nDestry:銷毀Activity。1)調(diào)用了finish方法。2)系統(tǒng)資源不夠用了。 函數(shù)調(diào)用過程: 啟動第一個Activity的時候: 第一次創(chuàng)建nCreate- A

6、ctivity可見了nStart- Activity可以操作了nResume。 點擊第一個Activity上的按鈕通過Intent 跳到第二個Activity: 第一個Activity暫停nPause- 創(chuàng)建第二個ActivitynCreate- Activity可見nStart- Activity可操作nResume- 第一個Activity被第二個Activity完全遮蓋nStp(如果調(diào)用了finish,或者系統(tǒng)資源緊缺,則會被銷毀nDestry)。 點擊系統(tǒng)返回功能建,從第二個Activity回到第一個Activity : 第二個Activity暫停nPause- 第一個Activity

7、重啟動nRestart(并沒有被銷毀,如果銷毀了則要創(chuàng)建nCreate)- 第一個Activity可見nStart- 第一個Activity可操作nResume- 第二個Activity被完全遮蓋nStp(如果調(diào)用了finish,或者系統(tǒng)資源緊缺,則會被銷毀nDestry)。 2.橫豎屏切換時候activity的生命周期 1.不設(shè)置Activity的andrid:cnfigChanges時,切屏?xí)匦抡{(diào)用各個生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次. 作者: superjunjin 2.設(shè)置Activity的andrid:cnfigChanges= rientatin 時,切屏還是會重

8、新調(diào)用各個生命周期,切橫、豎屏?xí)r只會執(zhí)行一次. 3.設(shè)置Activity的andrid:cnfigChanges= rientatin|keybardHidden 時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行nCnfiguratinChanged方法. 3.andrid中的動畫有哪幾類,它們的特點和區(qū)別是什么? Andrid提供兩種創(chuàng)建簡單動畫的機制: teened animatin(補間動畫) 和 frame-by-frame animatin(幀動畫). teened animatin: 通過對場景里的對象不斷做圖像變換(平移、縮放、旋轉(zhuǎn))產(chǎn)生動畫效果 frame-by-frame anim

9、atin: 順序播放事先做好的圖像,跟電影類似 這兩種動畫類型都能在任何Vie對象中使用,用來提供簡單的旋轉(zhuǎn)計時器,activity圖標(biāo)及其他有用的UI元素。Teened animatin被 andrid.vie.animatin包所操作;frame-by-frame animatin被 andrid.graphics.draable.AnimatinDraable類所操作。 想了解更多關(guān)于創(chuàng)建teened和frame-by-frame動畫的信息,讀一下Dev Guide-Graphics-2D Graphics里面相關(guān)部分的討論。 Animatin 是以 XML格式定義的,定義好的XML文件

10、存放在res/anim中。由于Teen Animatin與Frame-by-frame Animatin的定義、使用都有很大的差異,我們將分開介紹,本篇幅中主要介紹Teen Animatin的定義與使用。按照XML文檔的結(jié)構(gòu)【父節(jié)點,子節(jié)點,屬性】來介紹Teen Animatin,其由4種類型: Alpha: 漸變透明度動畫效果 Scale: 漸變尺寸伸縮動畫效果 Translate: 畫面轉(zhuǎn)換位置移動動畫效果 篇二: Andrid面試題總結(jié)強勁版 (一) 自己總結(jié)的最強andrid應(yīng)用面試題集 1.activity的生命周期。 nCreate 在activity第一次被創(chuàng)建的時候調(diào)用。這里是

11、你做所有初始化設(shè)置的地方創(chuàng)建視圖、綁定數(shù)據(jù)至列表等。如果曾經(jīng)有狀態(tài)記錄(參閱后述Saving Activity State。),則調(diào)用此否 nStart 方法時會傳入一個包含著此activity以 前狀態(tài)的包對象做為參數(shù)。 總繼之以nStart。 nRestart 在activity停止后,在再次啟動之前被調(diào)用。 總繼之以nStart。 當(dāng)activity正要變得為用戶所見時被調(diào) 用。 否 nStart nStart 當(dāng)activity轉(zhuǎn)向前臺時繼以 nResume,在activity變?yōu)殡[藏時繼 以nStp。 nResume 否 r nStp 在activity開始與用戶進行交互之前被調(diào)用。

12、此時activity位于堆棧頂部,并 nResume 接受用戶輸入。 否 nPause 繼之以nPause。 當(dāng)系統(tǒng)將要啟動另一個activity時調(diào) 用。此方法主要用來將未保存的變化進 行持久化,停止類似動畫這樣耗費CPUnResume 的動作等。這一切動作應(yīng)該在短時間內(nèi)nPause 是 r 完成,因為下一個activity必須等到此nStp 方法返回后才會繼續(xù)。 當(dāng)activity重新回到前臺是繼以 nResume。當(dāng)activity變?yōu)橛脩舨豢?見時繼以nStp。 當(dāng)activity不再為用戶可見時調(diào)用此方 法。這可能發(fā)生在它被銷毀或者另一個 activity(可能是現(xiàn)存的或者是新的)

13、回到運行狀態(tài)并覆蓋了它。 如果activity再次回到前臺跟用戶交互 則繼以nRestart,如果關(guān)閉activity 則繼以nDestry。 nStp nRestart 是 r nDestry nDestry 在activity銷毀前調(diào)用。這是activity接收的最后一個調(diào)用。這可能發(fā)生在activity結(jié)束(調(diào)用了它的 finish 方法)或者因為系統(tǒng)需要是 nthing 空間所以臨時的銷毀了此acitivity的 實例時。你可以用isFinishing 方法 來區(qū)分這兩種情況。 2.橫豎屏切換時候activity的生命周期 1.不設(shè)置Activity的andrid:cnfigChang

14、es時,切屏?xí)匦抡{(diào)用各個生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次. 2.設(shè)置Activity的andrid:cnfigChanges= rientatin 時,切屏還是會重新調(diào)用各個生命周期,切橫、豎屏?xí)r只會執(zhí)行一次. 3.設(shè)置Activity的andrid:cnfigChanges= rientatin|keybardHidden 時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行nCnfiguratinChanged方法. 4. 一條最長的短信息約占多少byte? 中文70(包括標(biāo)點),英文160個字節(jié)。 5.handler機制的原理 andrid提供了 Handler 和 Lper 來

15、滿足線程間的通信。Handler 先進先出原則。Lper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)。 1)Lper: 一個線程可以產(chǎn)生一個Lper對象,由它來管理此線程里的 Message Queue(消息隊列)。 2)Handler: 你可以構(gòu)造Handler對象來與Lper溝通,以便push新消息到Message Queue里;或者接收Lper從Message Queue取出)所送來的消息。 3) Message Queue(消息隊列):用來存放線程放入的消息。 4)線程: UI thread 通常就是main thread,而Andrid啟動程序時會替它建

16、立一個Message Queue。 6.什么是嵌入式實時操作系統(tǒng), Andrid 操作系統(tǒng)屬于實時操作系統(tǒng)嗎? 嵌入式實時操作系統(tǒng)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實時任務(wù)協(xié)調(diào)一致運行的嵌入式操作系統(tǒng)。主要用于工業(yè)控制、 軍事設(shè)備、 航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時間有苛刻的要求,這就需要使用實時系統(tǒng)。又可分為軟實時和硬實時兩種,而andrid是基于linux內(nèi)核的,因此屬于軟實時。 7.andrid中線程與線程,進程與進程之間如何通信 1、一個 Andrid 程序開始運行時,會單獨啟動一

17、個Prcess。 默認(rèn)情況下,所有這個程序中的Activity或者Service都會跑在這個Prcess。 默認(rèn)情況下,一個Andrid程序也只有一個Prcess,但一個Prcess下卻可以有許多個Thread。 2、一個 Andrid 程序開始運行時,就有一個主線程Main Thread被創(chuàng)建。該線程主要負(fù)責(zé)UI界面的顯示、更新和控件交互,所以又叫UI Thread。 一個Andrid程序創(chuàng)建之初,一個Prcess呈現(xiàn)的是單線程模型-即Main Thread,所有的任務(wù)都在一個線程中運行。所以,Main Thread所調(diào)用的每一個函數(shù),其耗時應(yīng)該越短越好。而對于比較費時的工作,應(yīng)該設(shè)法交給子

18、線程去做,以避免阻塞主線程(主線程被阻塞,會導(dǎo)致程序假死 現(xiàn)象)。 3、Andrid單線程模型: Andrid UI操作并不是線程安全的并且這些操作必須在UI線程中執(zhí)行。如果在子線程中直接修改UI,會導(dǎo)致異常。 8.Andrid dvm的進程和Linux的進程, 應(yīng)用程序的進程是否為同一個概念 DVM指dalivk的虛擬機。每一個Andrid應(yīng)用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。而每一個DVM都是在Linux 中的一個進程,所以說可以認(rèn)為是同一個概念。 9.sim卡的EF 文件有何作用 sim卡的文件系統(tǒng)有自己規(guī)范,主要是為了和手機通訊,sim本 身可以有自己

19、的操作系統(tǒng),EF就是作存儲并和手機通訊用的 1 1.讓Activity變成一個窗口: Activity屬性設(shè)定 講點輕松的吧,可能有人希望做出來的應(yīng)用程序是一個漂浮在手機主界面的東西,那么很 簡單你只需要設(shè)置 一下Activity的主題就可以了在AndridManifest.xml 中定義 Activity的 地方一句話: Xml代碼 1. andrid :theme= andrid:style/Theme.Dialg 這就使你的應(yīng)用程序變成對話框的形式彈出來了,或者 Xml代碼 1. andrid:theme= andrid:style/Theme.Translucent 就變成半透明的,友

20、情提示-.-類似的這種activity的屬性可以在andrid.R.styleable 類的AndridManifestActivity 方法中看到,AndridManifest.xml中所有元素的屬性的介紹都可以參考這個類andrid.R.styleable 上面說的是屬性名稱,具體有什么值是在andrid.R.style中 可以看到,比如這個 andrid:style/Theme.Dialg 就對應(yīng)于andrid.R.style.Theme_Dialg ,( _ 換成 . -注 意: 這個是文章內(nèi)容不是笑臉)就可以用在描述文件 中了,找找類定義和描述文件中的對應(yīng)關(guān)系就都明白了。 1 2.如

21、何將SQLite數(shù)據(jù)庫(dictinary.db文件)與apk文件一起發(fā)布? 解答: 可以將dictinary.db文件復(fù)制到Eclipse Andrid工程中的res a目錄中。所有在res a目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件。可以將dictinary.db文件復(fù)制到res a目錄中 1 3.如何將打開res a目錄中的數(shù)據(jù)庫文件? 解答: 在Andrid中不能直接打開res a目錄中的數(shù)據(jù)庫文件,而需要在程序第一次啟動時將該文件復(fù)制到手機內(nèi)存或SD卡的某個目錄中,然后再打開該數(shù)據(jù)庫文件。復(fù)制的基本方法是使用getResurces.penRaResurce方法獲得res

22、 a目錄中資源 的 InputStream對象,然后將該InputStream對象中的數(shù)據(jù)寫入其他的目錄中相應(yīng)文件中。在Andrid SDK中可以使用SQLiteDatabase.penrCreateDatabase方法來打開任意目錄中的SQLite數(shù)據(jù)庫文件。 1 4.在andrid中mvc的具體體現(xiàn) Andrid 的官方建議應(yīng)用程序的開發(fā)采用MVC 模式。何謂MVC?先看看下圖 MVC 是Mdel,Vie,Cntrller 的縮寫,從上圖可以看出MVC 包含三個部分: . 模型(Mdel)對象: 是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在該 層。 . 視圖(Vie)對象: 是應(yīng)用程序中

23、負(fù)責(zé)生成用戶界面的部分。也是在整個 MVC 架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。 . 控制器(Cntrl)對象: 是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新 Mdel 對象狀態(tài)的部分,控制器更重要的一種導(dǎo)航功能,想用用戶出發(fā)的相 關(guān)事件,交給M 哦得了處理。 篇三: Andrid面試題總結(jié)強勁版 (二) (轉(zhuǎn)自CSDN) 轉(zhuǎn)載地址: /itachi85/article/details/7426457 1 6.Andrid常用控件的信息 單選框(RadiButtn與RadiGrup): RadiGrup用于對單選框進行分組,相同組內(nèi)的單選框只有一

24、個單選框被選中。 事件: setnCheckedChangeListener,處理單選框被選擇事件。把 RadiGrup.nCheckedChangeListener實例作為參數(shù)傳入。 多選框(CheckBx): 每個多選框都是獨立的,可以通過迭代所有的多選框,然后根據(jù)其狀態(tài)是否被選中在獲取其值。 事件: setnCheckChangeListener處理多選框被選擇事件。把 CmpundButtn.nCheckedChangeListener實例作為參數(shù)傳入 下拉列表框(Spring): Spinner.getItemAtPsitin(Spinner.getSelectedItemPsiti

25、n);獲取下拉列表框的值。 事件: setnItemSelectedListener,處理下拉列表框被選擇事件把 AdapterVie.nItemSelectedListener實例作為參數(shù)傳入; 拖動條(SeekBar): SeekBar.getPrgress獲取拖動條當(dāng)前值 事件:setnSeekBarChangeListener,處理拖動條值變化事件,把 SeekBar.nSeekBarChangeListener實例作為參數(shù)傳入。 菜單(Menu): 重寫Activity的nCreatptinMenu(Menu menu)方法,該方法用于創(chuàng)建選項菜單,咋用戶按下手機的 Menu 按鈕時

26、就會顯示創(chuàng)建好的菜單,在nCreatptinMenu(Menu Menu)方法內(nèi)部可以調(diào)用Menu.add方法實現(xiàn)菜單的添加。 重寫Activity的nMenuItemSelected方法,該方法用于處理菜單被選擇事件。 進度對話框(PrgressDialg): 創(chuàng)建并顯示一個進度對話框: PrgressDialg.sh(PrgressDialgActivity.this, 請稍等 , 數(shù)據(jù)正在加載中. ,true); 設(shè)置對話框的風(fēng)格: setPrgressStyle PrgressDialg.STYLE_SPINNER 旋轉(zhuǎn)進度條風(fēng)格(為默認(rèn)風(fēng)格) PrgressDialg.STYLE_H

27、RIZNTAL 橫向進度條風(fēng)格 1 7.請介紹下Andrid中常用的五種布局 Andrid布局是應(yīng)用界面開發(fā)的重要一環(huán),在Andrid中,共有五種布局方式,分別是: FrameLayut(框架布局),LinearLayut (線性布局), AbsluteLayut(絕對布局),RelativeLayut(相對布局),TableLayut(表格布局)。 1.FrameLayut 這個布局可以看成是墻腳堆東西,有一個四方的矩形的左上角墻腳,我們放了第一個東西,要再放一個,那就在放在原來放的位置的上面,這樣依次的放,會蓋住原來的東西。這個布局比較簡單,也只能放一點比較簡單的東西。 2.LinearL

28、ayut 線性布局,這個東西,從外框上可以理解為一個div,他首先是一個一個從上往下羅列在屏幕上。每一個LinearLayut里面又可分為垂直布局 (andrid:rientatin= vertical )和水平布局(andrid:rientatin= hrizntal )。當(dāng)垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。 linearLayut中有一個重要的屬性 andrid:layut_eight= 1 ,這個eight在垂直布局時,代表行距;水平的時候代表列寬;eight值越大就越大。 3.AbsluteLayut 絕對布局猶如di

29、v指定了abslute屬性,用X,Y坐標(biāo)來指定元素的位置 andrid:layut_x= 20px andrid:layut_y= 12px 這種布局方式也比較簡單,但是在垂直隨便切換時,往往會出問題,而且多個元素的時候,計算比較麻煩。 4.RelativeLayut 相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有: 相對于某一個元素 andrid:layut_bel= id/aaa 該元素在 id為aaa的下面 andrid:layut_tLeftf= id/bbb 改元素的左邊是bbb 相對于父元素的地方 andrid:layut_alignParentLeft= tr

30、ue 在父元素左對齊 andrid:layut_alignParentRight= true 在父元素右對齊 還可以指定邊距等,具體詳見API 5.TableLayut 表格布局類似Html里面的Table。每一個TableLayut里面有表格行TableR,TableR里面可以具體定義每一個元素,設(shè)定他的對齊方式 andrid:gravity= 。 每一個布局都有自己適合的方式,另外,這五個布局元素可以相互嵌套應(yīng)用,做出美觀的界面。 1 8.如何啟用Service,如何停用Service Andrid中的服務(wù)和inds中的服務(wù)是類似的東西,服務(wù)一般沒有用戶操作界面,它運行于系統(tǒng)中不容易被用戶

31、發(fā)覺,可以使用它開發(fā)如監(jiān)控之類的程序。服務(wù)的開發(fā)比較簡單,如下: 第一步: 繼承Service類 public class SMSService extends Service 第二步: 在AndridManifest.xml文件中的 applicatin 節(jié)點里對服務(wù)進行配置: service andrid:name= .SMSService / 服務(wù)不能自己運行,需要通過調(diào)用Cntext.startService或Cntext.bindService方法啟動服務(wù)。這兩個方法都可以啟動Service,但是它們的使用場合有所不同。使用startService方法啟用服務(wù),調(diào)用者與服務(wù)之間沒有關(guān)

32、連,即使調(diào)用者退出了,服務(wù)仍然運行。使用bindService方法啟用服務(wù),調(diào)用者與服務(wù)綁定在了一起,調(diào)用者一旦退出,服務(wù)也就終止,大有“不求同時生,必須同時死”的特點。 如果打算采用Cntext.startService方法啟動服務(wù),在服務(wù)未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務(wù)的nCreate方法,接著調(diào)用nStart方法。如果調(diào)用startService方法前服務(wù)已經(jīng)被創(chuàng)建,多次調(diào)用startService方法并不會導(dǎo)致多次創(chuàng)建服務(wù),但會導(dǎo)致多次調(diào)用nStart方法。采用startService方法啟動的服務(wù),只能調(diào)用Cntext.stpService方法結(jié)束服務(wù),服務(wù)結(jié)束時會調(diào)用nDestry方法

33、。 如果打算采用Cntext.bindService方法啟動服務(wù),在服務(wù)未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務(wù)的nCreate方法,接著調(diào)用nBind方法。這個時候調(diào)用者和服務(wù)綁定在一起,調(diào)用者退出了,系統(tǒng)就會先調(diào)用服務(wù)的nUnbind方法,接著調(diào)用nDestry方法。如果調(diào)用bindService方法前服務(wù)已經(jīng)被綁定,多次調(diào)用bindService方法并不會導(dǎo)致多次創(chuàng)建服務(wù)及綁定(也就是說nCreate和nBind方法并不會被多次調(diào)用)。如果調(diào)用者希望與正在綁定的服務(wù)解除綁定,可以調(diào)用unbindService方法,調(diào)用該方法也會導(dǎo)致系統(tǒng)調(diào)用服務(wù)的 nUnbind- nDestry方法。 服務(wù)常用生命

34、周期回調(diào)方法如下: nCreate 該方法在服務(wù)被創(chuàng)建時調(diào)用,該方法只會被調(diào)用一次,無論調(diào)用多少次startService或bindService方法,服務(wù)也只被創(chuàng)建一次。 nDestry該方法在服務(wù)被終止時調(diào)用。 與采用Cntext.startService方法啟動服務(wù)有關(guān)的生命周期方法 nStart 只有采用Cntext.startService方法啟動服務(wù)時才會回調(diào)該方法。該方法在服務(wù)開始運行時被調(diào)用。多次調(diào)用startService方法盡管不會多次創(chuàng)建服務(wù),但nStart 方法會被多次調(diào)用。 與采用Cntext.bindService方法啟動服務(wù)有關(guān)的生命周期方法 nBind只有采用C

35、ntext.bindService方法啟動服務(wù)時才會回調(diào)該方法。該方法在調(diào)用者與服務(wù)綁定時被調(diào)用,當(dāng)調(diào)用者與服務(wù)已經(jīng)綁定,多次調(diào)用Cntext.bindService方法并不會導(dǎo)致該方法被多次調(diào)用。 nUnbind只有采用Cntext.bindService方法啟動服務(wù)時才會回調(diào)該方法。該方法在調(diào)用者與服務(wù)解除綁定時被調(diào)用 java vie plaincpyprint? 1. 采用Cntext. bindService方法啟動服務(wù)的代碼如下: 2. public class HellActivity extends Activity 3. ServiceCnnectin cnn = ne Se

36、rviceCnnectin 4. public vid nServiceCnnected(CmpnentName name, IBinder ser vice) 5. 6. public vid nServiceDiscnnected(CmpnentName name) 7. 8. ; 9. verride 10. public vid nCreate(Bundle savedInstanceState) 1 1. Buttn buttn =(Buttn) this.findVieById(R.id.buttn); 1 2. buttn.setnClickListener(ne Vie.nCl

37、ickListener 1 3. public vid nClick(Vie v) 1 4. Intent intent = ne Intent(HellActivity.this, SMSService. class);篇四: Andrid面試題總結(jié)強勁版 (一) 自己總結(jié)的最強andrid應(yīng)用面試題集 1.activity的生命周期。 nCreate 在activity第一次被創(chuàng)建的時候調(diào)用。這里是你做所有初始化設(shè)置的地方創(chuàng)建視圖、綁定數(shù)據(jù)至列表等。如果曾經(jīng)有狀態(tài)記錄(參閱后述Saving Activity State。),則調(diào)用此否 nStart 方法時會傳入一個包含著此activity

38、以 前狀態(tài)的包對象做為參數(shù)。 總繼之以nStart。 nRestart 在activity停止后,在再次啟動之前被調(diào)用。 總繼之以nStart。 當(dāng)activity正要變得為用戶所見時被調(diào) 用。 否 nStart nStart 當(dāng)activity轉(zhuǎn)向前臺時繼以 nResume,在activity變?yōu)殡[藏時繼 以nStp。 nResume 否 r nStp 在activity開始與用戶進行交互之前被調(diào)用。此時activity位于堆棧頂部,并 nResume 接受用戶輸入。 否 nPause 繼之以nPause。 當(dāng)系統(tǒng)將要啟動另一個activity時調(diào) 用。此方法主要用來將未保存的變化進 行持久

39、化,停止類似動畫這樣耗費CPUnResume 的動作等。這一切動作應(yīng)該在短時間內(nèi)nPause 是 r 完成,因為下一個activity必須等到此nStp 方法返回后才會繼續(xù)。 當(dāng)activity重新回到前臺是繼以 nResume。當(dāng)activity變?yōu)橛脩舨豢?見時繼以nStp。 當(dāng)activity不再為用戶可見時調(diào)用此方 法。這可能發(fā)生在它被銷毀或者另一個 activity(可能是現(xiàn)存的或者是新的) 回到運行狀態(tài)并覆蓋了它。 如果activity再次回到前臺跟用戶交互 則繼以nRestart,如果關(guān)閉activity 則繼以nDestry。 nStp nRestart 是 r nDestry

40、 nDestry 在activity銷毀前調(diào)用。這是activity接收的最后一個調(diào)用。這可能發(fā)生在activity結(jié)束(調(diào)用了它的 finish 方法)或者因為系統(tǒng)需要是 nthing 空間所以臨時的銷毀了此acitivity的 實例時。你可以用isFinishing 方法 來區(qū)分這兩種情況。 2.橫豎屏切換時候activity的生命周期 1.不設(shè)置Activity的andrid:cnfigChanges時,切屏?xí)匦抡{(diào)用各個生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次. 2.設(shè)置Activity的andrid:cnfigChanges= rientatin 時,切屏還是會重新調(diào)用各個生

41、命周期,切橫、豎屏?xí)r只會執(zhí)行一次. 3.設(shè)置Activity的andrid:cnfigChanges= rientatin|keybardHidden 時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行nCnfiguratinChanged方法. 4. 一條最長的短信息約占多少byte? 中文70(包括標(biāo)點),英文160個字節(jié)。 5.handler機制的原理 andrid提供了 Handler 和 Lper 來滿足線程間的通信。Handler 先進先出原則。Lper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)。 1)Lper: 一個線程可以產(chǎn)生一個Lper對象,由它來管理

42、此線程里的 Message Queue(消息隊列)。 2)Handler: 你可以構(gòu)造Handler對象來與Lper溝通,以便push新消息到Message Queue里;或者接收Lper從Message Queue取出)所送來的消息。 3) Message Queue(消息隊列):用來存放線程放入的消息。 4)線程: UI thread 通常就是main thread,而Andrid啟動程序時會替它建立一個Message Queue。 6.什么是嵌入式實時操作系統(tǒng), Andrid 操作系統(tǒng)屬于實時操作系統(tǒng)嗎? 嵌入式實時操作系統(tǒng)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其

43、處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實時任務(wù)協(xié)調(diào)一致運行的嵌入式操作系統(tǒng)。主要用于工業(yè)控制、 軍事設(shè)備、 航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時間有苛刻的要求,這就需要使用實時系統(tǒng)。又可分為軟實時和硬實時兩種,而andrid是基于linux內(nèi)核的,因此屬于軟實時。 7.andrid中線程與線程,進程與進程之間如何通信 1、一個 Andrid 程序開始運行時,會單獨啟動一個Prcess。 默認(rèn)情況下,所有這個程序中的Activity或者Service都會跑在這個Prcess。 默認(rèn)情況下,一個Andrid程序也只有一個Prcess,但一個Prcess下卻可以有許多個Thread。 2、一個 Andrid 程序開始運行時,就有一個主線程Main T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論