android面試題.docx_第1頁
android面試題.docx_第2頁
android面試題.docx_第3頁
android面試題.docx_第4頁
android面試題.docx_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Android常用面試簡答題1、 android 中的動畫有哪幾類,它們的特點和區(qū)別是什么?參考答案:有兩種,一種是 Tween(補間) 動畫、還有一種是 Frame(幀) 動畫。Tween 動畫,這種實現(xiàn)方式可以使視圖組件移動、放大、縮小以及產(chǎn)生透明度的變化;另一種 Frame 動畫,傳統(tǒng)的動畫方法,通過順序的播放排列好的圖片來實現(xiàn),類似電影。2、 請簡述Handler的機制原理參考答案:andriod 提供了 Handler 和 Looper 來滿足線程間的通信。Handler 先進先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)。 1)Looper: 一個線程可以產(chǎn)生一個 Looper 對象,由它來管理此線程里的 Message Queue(消息隊列)。 2)Handler: 你可以構(gòu)造 Handler 對象來與 Looper 溝通,以便 push 新消息到 Message Queue 里;或者接收 Looper從 Message Queue 取出)所送來的消息。 3) Message Queue(消息隊列):用來存放線程放入的消息。 4)線程:UI thread 通常就是 main thread,而 Android 啟動程序時會替它建立一個Message Queue。3、 說說mvc模式的原理,它在android中的運用參考答案:MVC 是 Model,View,Controller 的縮寫,從上圖可以看出 MVC 包含三個部分: 模型( Model )對象:是應用程序的主體部分,所有的業(yè)務邏輯都應該寫在該層。 視圖( View )對象:是應用程序中負責生成用戶界面的部分。也是在整個MVC 架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。 控制器( Control )對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新Model 對象狀態(tài)的部分,控制器更重要的一種導航功能,想用用戶出發(fā)的相關(guān)事件,交給 M 哦得了處理。Android 鼓勵弱耦合和組件的重用,在 Android 中 MVC 的具體體現(xiàn)如下1) 視圖層( view ) :一般采用 xml 文件進行界面的描述,使用的時候可以非常方便的引入,當然,如何你對 android 了解的比較的多了話,就一定可 以想到在 android 中也可以使用javascript+html 等的方式作為 view 層,當然這里需要進行 java 和 javascript 之間的通 信,幸運的是, android 提供了它們之間非常方便的通信實現(xiàn)。2) 控制層( controller ): android 的控制層的重 任通常落在了眾多的 acitvity 的肩上,這句話也就暗含了不要在 acitivity 中寫代碼,要通過 activity 交割 model 業(yè)務邏輯層處理, 這樣做的另外一個原因是 android 中的 acitivity 的響應時間是 5s ,如果耗時的操作放在這里,程序就很容易被回收掉。3) 模型層( model ): 對數(shù)據(jù)庫的操作、對網(wǎng)絡等的操作都應該在 model 里面處理,當然對業(yè)務計算等操作也是必須放在的該層的。4、通過Intent傳遞一些二進制數(shù)據(jù)的方法有哪些?參考答案:1). 使用Serializable接口實現(xiàn)序列化,這是Java常用的方法。 2). 實現(xiàn)Parcelable接口,這里Android的部分類比如Bitmap類就已經(jīng)實現(xiàn)了,同時Parcelable在Android AIDL中交換數(shù)據(jù)也很常見的。 5、在onCreate方法中Bundle savedInstanceState 這個參數(shù)有什么作用?參考答案:在onCreate方法中有saveInstanceState這個參數(shù),其實這個參數(shù)對應兩個方法。void onSaveInstanceState(Bundle outState);void onRestoreInstanceState(Bundle savedInstanceState)。當某個activity變得“容易”被系統(tǒng)銷毀時,說白了就是系統(tǒng)在內(nèi)存不足或者其他異常情況下把你的Activity銷毀時,將調(diào)用這個方法。需要注意的是它是系統(tǒng)調(diào)用的,并且你的Activity是被動得被銷毀。你可以在銷毀的時候保存一下數(shù)據(jù)。然后在onCreate方法中拿出來。那什么情況下能觸發(fā)這兩個方法呢?1)、當用戶按下HOME鍵時。這是顯而易見的,系統(tǒng)不知道你按下HOME后要運行多少其他的程序,自然也不知道activity A是否會被銷毀,故系統(tǒng)會調(diào)用onSaveInstanceState,讓用戶有機會保存某些非永久性的數(shù)據(jù)。以下幾種情況的分析都遵循該原則2)、長按HOME鍵,選擇運行其他的程序時。3)、按下電源按鍵(關(guān)閉屏幕顯示)時。4)、從activity A中啟動一個新的activity時。5)、屏幕方向切換時,例如從豎屏切換到橫屏時。在屏幕切換之前,系統(tǒng)會銷毀activity A,在屏幕切換之后系統(tǒng)又會自動地創(chuàng)建activity A,所以onSaveInstanceState一定會被執(zhí)行總而言之,onSaveInstanceState的調(diào)用遵循一個重要原則,即當系統(tǒng)“未經(jīng)你許可”時銷毀了你的activity,則onSaveInstanceState會被系統(tǒng)調(diào)用,這是系統(tǒng)的責任,因為它必須要提供一個機會讓你保存你的數(shù)據(jù)(當然你不保存那就隨便你了)。至于onRestoreInstanceState方法,需要注意的是,onSaveInstanceState方法和onRestoreInstanceState方法“不一定”是成對的被調(diào)用的,onRestoreInstanceState被調(diào)用的前提是,activity A“確實”被系統(tǒng)銷毀了,而如果僅僅是停留在有這種可能性的情況下,則該方法不會被調(diào)用,例如,當正在顯示activity A的時候,用戶按下HOME鍵回到主界面,然后用戶緊接著又返回到activity A,這種情況下activity A一般不會因為內(nèi)存的原因被系統(tǒng)銷毀,故activity A的onRestoreInstanceState方法不會被執(zhí)行另外,onRestoreInstanceState的bundle參數(shù)也會傳遞到onCreate方法中,你也可以選擇在onCreate方法中做數(shù)據(jù)還原。6、請談談Activity的生命周期?參考答案:在系統(tǒng)中的Activity被一個Activity棧所管理。當一個新的Activity啟動時,將被放置到棧頂,成為運行中的Activity,前一個Activity保留在棧中,不再放到前臺,直到新的Activity退出為止。Activity有四種本質(zhì)區(qū)別的狀態(tài):1)在屏幕的前臺(Activity棧頂),叫做活動狀態(tài)或者運行狀態(tài)(active or running)2)如果一個Activity失去焦點,但是依然可見(一個新的非全屏的Activity 或者一個透明的Activity 被放置在棧頂),叫做暫停狀態(tài)(Paused)。一個暫停狀態(tài)的Activity依然保持活力(保持所有的狀態(tài),成員信息,和窗口管理器保持連接),但是在系統(tǒng)內(nèi)存極端低下的時候?qū)⒈粴⒌簟?)如果一個Activity被另外的Activity完全覆蓋掉,叫做停止狀態(tài)(Stopped)。它依然保持所有狀態(tài)和成員信息,但是它不再可見,所以它的窗口被隱藏,當系統(tǒng)內(nèi)存需要被用在其他地方的時候,Stopped的Activity將被殺掉。4)如果一個Activity是Paused或者Stopped狀態(tài),系統(tǒng)可以將該Activity從內(nèi)存中刪除,Android系統(tǒng)采用兩種方式進行刪除,要么要求該Activity結(jié)束,要么直接殺掉它的進程。當該Activity再次顯示給用戶時,它必須重新開始和重置前面的狀態(tài)。Activity提供了7個生命周期方法:onCreate(),onStart(),onResume(),onPause(),onStop(),onDestory(),onRestart()。在這七個生命周期方法中有三個關(guān)鍵的循環(huán)。其實官方給的那張圖畫得很明白,但估計很少人能有耐心去揣摩。那就換種方式展現(xiàn)。看圖吧:1)以下該圖呈現(xiàn)了一個Activity完整的生命周期,從onCreate(Bundle)開始到onDestroy()結(jié)束。Activity在onCreate()設置所有的“全局”狀態(tài),在 onDestory()釋放所有的資源。首先我們運行程序,這是打開MainActivity依次調(diào)用onCreate-onStart-onResume,這時MainActivity在棧頂,與我們交互的Activity都在棧頂。然后我按下返回鍵,則會依次調(diào)用onPause-onStop-onDestory。這屬于一個完整的生命周期。7、談談你對BroadCastRceiver的理解?參考答案:廣播接收者,android四大組件之一,也是唯一一個能動態(tài)注冊的組件。1)廣播接收者是一個專注于接收廣播通知信息,并做出對應處理的組件。很多廣播是源自于系統(tǒng)比如,通知時區(qū)改變、電池電量低、拍攝了一張照片或者用戶改變了語言選項。應用程序也可以進行廣播比如說,通知其它應用程序一些數(shù)據(jù)下載完成并處于可用狀態(tài)。2)應用程序可以擁有任意數(shù)量的廣播接收者以對所有它感興趣的通知信息予以響應。所有的接收器均繼承自BroadcastReceiver基類。3)廣播接收者沒有用戶界面。然而,它們可以啟動一個activity來響應它們收到的信息,或者用NotificationManager來通知用戶。通知可以用很多種方式來吸引用戶的注意力閃動背燈、震動、播放聲音等等。一般來說是在狀態(tài)欄上放一個持久的圖標,用戶可以打開它并獲取消息。8、 廣播分幾種?他們有什么區(qū)別?參考答案:廣播被分為兩種不同的類型:“普通廣播(Normal broadcasts)”和“有序廣播(Ordered broadcasts)”。普通廣播是完全異步的,可以在同一時刻(邏輯上)被所有接收者接收到,消息傳遞的效率比較高,但缺點是:接收者不能將處理結(jié)果傳遞給下一個接收者,并且無法終止廣播Intent的傳播。然而有序廣播是按照接收者聲明的優(yōu)先級別,被接收者依次接收廣播。如:A的級別高于B,B的級別高于C,那么,廣播先傳給A,再傳給B,最后傳給C 。優(yōu)先級別聲明在 intent-filter 元素的 android:priority 屬性中,數(shù)越大優(yōu)先級別越高,取值范圍:-1000到1000,優(yōu)先級別也可以調(diào)用IntentFilter對象的setPriority()進行設置 。有序廣播的接收者可以終止廣播Intent的傳播,廣播Intent的傳播一旦終止,后面的接收者就無法接收到廣播。另外,有序廣播的接收者可以將數(shù)據(jù)傳遞給下一個接收者,如:A得到廣播后,可以往它的結(jié)果對象中存入數(shù)據(jù),當廣播傳給B時,B可以從A的結(jié)果對象中得到A存入的數(shù)據(jù)。Context.sendBroadcast()發(fā)送的是普通廣播,所有訂閱者都有機會獲得并進行處理。Context.sendOrderedBroadcast()發(fā)送的是有序廣播,系統(tǒng)會根據(jù)接收者聲明的優(yōu)先級別按順序逐個執(zhí)行接收者,前面的接收者有權(quán)終止廣播(BroadcastReceiver.abortBroadcast(),如果廣播被前面的接收者終止,后面的接收者就再也無法獲取到廣播。對于有序廣播,前面的接收者可以將數(shù)據(jù)通過setResultExtras(Bundle)方法存放進結(jié)果對象,然后傳給下一個接收者,下一個接收者通過代碼:Bundle bundle = getResultExtras(true)可以獲取上一個接收者存入在結(jié)果對象中的數(shù)據(jù)。9、 廣播的生命周期?參考答案:廣播的生命周期是非常短的,當發(fā)送之后intent會到AndroidManifest.xml文件中找是不是有匹配的action,如果有就會調(diào)用Receiver ,然后獲得Receiver 對象,再執(zhí)行onReceive方法,這時候Receiver對象就沒有用了,當我們再次點擊按鈕的時候就會重新獲得對象,這就是BroadcastReceiver的生命周期.在BroadcastReceiver里不能做一些比較耗時的操作,否側(cè)會彈出ANR(Application No Response)的對話框.如果需要完成一項比較耗時的工作,應該通過發(fā)送Intent給Service,由Service來完成.這里不能使用子線程來解決,因為BroadcastReceiver的生命周期很短,子線程可能還沒有結(jié)束,BroadcastReceiver就先結(jié)束了.BroadcastReceiver一旦結(jié)束,此時BroadcastReceiver的所在進程很容易在系統(tǒng)需要內(nèi)存時被優(yōu)先殺死,因為它屬于空進程(沒有任何活動組件的進程).如果它的宿主進程被殺死,那么正在工作的子線程也會被殺死.所以采用子線程來解決是不可靠的.9、 兩種注冊BroadcastReceiver的方法?參考答案:使用在manifest中注冊的方法注冊BroadcastReceiver,即使你的應用程序沒有啟動,或者已經(jīng)被關(guān)閉,這個BroadcastReceiver依然會繼續(xù)運行,這樣的運行機制可能會給軟件的用戶造成困擾。所以作為程序的開發(fā)者,我們希望能夠有一種靈活的機制完成BroadcastReceiver的綁定和解除綁定操作。Android當然也考慮到了這些問題,所以在Context這個類當中提供了如下兩個函數(shù)可以在代碼中注冊:i. registerReceiver(receiver,filter);這個函數(shù)的作用就是將一個BroadcastReceiver注冊到應用程序當中,這個函數(shù)接收兩個參數(shù),第一個參數(shù)是需要注冊的BroadcastReceiver對象,第二個是一個IntentFilter。第一個參數(shù)是非常容易理解的,第二個參數(shù)的作用是定義了哪些Intent才能觸發(fā)這個注冊的BroadcastReceiver對象。ii. unregisterReceiver(receiver);這個方法就非常的簡單了,用于解除BroadcastReceiver的綁定狀態(tài)。一旦解除完成,響應的BroadcastReceiver就不會再接收系統(tǒng)所廣播的Intent了。兩種注冊BroadcastReceiver的方法1.在應用程序的代碼中進行注冊注冊BroadcastReceiverregisterReceiver(receiver,filter);取消注冊BroadcastReceiverunregisterReceiver(receiver);2.在AndroidManifest.xml當中進行注冊兩種注冊BroadcastReceiver方法的比較:現(xiàn)在我們了解了兩種注冊BroadcastReceiver的方法之后,需要考慮一下這兩種方法適用的場合:i. 第一種注冊的方法可以保證在應用程序安裝之后,BroadcastReceiver始終處于活動狀態(tài),通常用于監(jiān)聽系統(tǒng)狀態(tài)的改變,比如說手機的電量,wifi網(wǎng)卡的狀態(tài)(當然,監(jiān)視這些東西也是取決于軟件的需求)。對于這樣的BroadcastReceiver,通常是在產(chǎn)生某個特定的系統(tǒng)事件之后,進行相應的操作,比如說wifi網(wǎng)卡打開時,給用戶一個提示;ii. 第二種注冊方法相對第一種要靈活的多,這樣注冊的BroadcastReceiver通常用于更新UI的狀態(tài)。一般來說,都是在一個Activity啟動的時候使用這樣的方法注冊BroadcastReceiver,一旦接收到廣播的事件,就可以在onReceive方法當中更新當前的這個Activity當中的控件。但是需要注意的是如果這個Activity不可見了,就應該調(diào)用unregisterReceiver方法來解除注冊10、android 中線程與線程,進程與進程之間如何通信參考答案:1 、一個 Android 程序開始運行時,會單獨啟動一個 Process 。默認情況下,所有這個程序中的 Activity 或者 Service 都會跑在這個 Process 。默認情況下,一個 Android 程序也只有一個 Process ,但一個 Process 下卻可以有許多個 Thread。2 、一個 Android 程序開始運行時,就有一個主線程 Main Thread 被創(chuàng)建。該線程主要負責 UI 界面的顯示、更新和控件交互,所以又叫 UI Thread 。一個 Android 程序創(chuàng)建之初,一個 Process 呈現(xiàn)的是單線程模型 即 Main Thread ,所有的任務都在一個線程中運行。所以, Main Thread 所調(diào)用的每一個函數(shù),其耗時應該越短越好。而對于比較費時的工作,應該設法交給子線程去做,以避免阻塞主線程(主線程被阻塞,會導致程序假死 現(xiàn)象)。3 、 Android 單線程模型: Android UI 操作并不是線程安全的并且這些操作必須在 UI 線程中執(zhí)行。如果在子線程中直接修改 UI ,會導致異常。11、View如何進行刷新?參考答案:在一個開啟的線程中調(diào)用handler對象的sendMessage方法發(fā)送信息,在UI線程中調(diào)用handler對象的回調(diào)方法handleMessage進行處理,在回調(diào)方法中執(zhí)行invalidate或者postInvalidate.12、ANR是什么?哪些情況下會發(fā)生?開發(fā)時如何避免ANR?參考答案:ANR(Application Not Responding):應用程序無應答。默認情況下,在android中Activity的最長阻塞時間是5秒,BroadcastReceiver的最長執(zhí)行時間則是10秒。為了避免出現(xiàn)ANR,可以在做比較耗時操作時,盡量使用子線程或Service。13、請描述SAX、DOM、PULL解析xml的原理,以及各自優(yōu)缺點。參考答案:這里首先明白什么是SAX是一個用于處理XML事件驅(qū)動的“推”模型,優(yōu)點是一種解析速度快并且占用內(nèi)存少的xml解析器,它需要哪些數(shù)據(jù)再加載和解析哪些內(nèi)容。缺點是它不會記錄標簽的關(guān)系,而要讓你的應用程序自己處理,這樣就增加了你程序的負擔。DOM是一種文檔對象模型,DOM可以以一種獨立于平臺和語言的方式訪問和修改一個文檔的內(nèi)容和結(jié)構(gòu)。Dom技術(shù)使得用戶頁面可以動態(tài)地變化,如 可以動態(tài)地顯示或隱藏一個元素,改變它們的屬性,增加一個元素等,Dom技術(shù)使得頁面的交互性大大地增強。缺點是DOM解析XML文件時,會將XML文件 的所有內(nèi)容以文檔樹方式存放在內(nèi)存中。Pull解析和Sax解析很相似,Pull解析和Sax解析不一樣的地方是pull讀取xml文件后觸發(fā)相應的事件調(diào)用方法返回的是數(shù)字還有pull可以在程序中控制想解析到哪里就可以停止解析14、請解釋什么是AIDL?參考答案:AIDL:Android Interface Definition Language,即Android接口描述語言。 Android系統(tǒng)中的進程之間不能共享內(nèi)存,因此,需要提供一些機制在不同進程之間進行數(shù)據(jù)通信。 為了使其他的應用程序也可以訪問本應用程序提供的服務,Android系統(tǒng)采用了遠程過程調(diào)用(Remote Procedure Call,RPC)方式來實現(xiàn)。與很多其他的基于RPC的解決方案一樣,Android使用一種接口定義語言(Interface Definition Language,IDL)來公開服務的接口。我們知道4個Android應用程序組件中的3個(Activity、Broadcast和Content Provider)都可以進行跨進程訪問,另外一個Android應用程序組件Service同樣可以。因此,可以將這種可以跨進程訪問的服務稱為AIDL(Android Interface Definition Language)服務。15、DIP、DPI分別是什么?參考答案:dip(device independent pixels)設備獨立像素, 與設備屏幕有關(guān)。dpi:屏幕像素密度。android最早是沒有考慮到這么多屏幕分辨率的。最早的機器是g1,他的分辨率是480*320。但是,由于android是開放的平臺,各種各樣分辨率的設備都可以運行。為了兼容這些平臺,android從1.6開始,加入了設備獨立像素,dip或者dp。標準屏幕480*320上,px與dip是1比1的。分辨率高的,比如800*480,就要按比例兌換成480*320。開發(fā)者在開發(fā)的時候,ui設計時最好用dp,系統(tǒng)會自動按比例計算為px,從而適配視圖。dpi是屏幕像素密度。就是1英寸上像素點的個數(shù)。對于屏幕來說,dpi越大,屏幕的精細度越高,屏幕看起來就越清楚。比如iphone4的視網(wǎng)膜級的屏幕肯定比iphone 3gs的屏幕像素密度高的多。 對于開發(fā)者來說,這個不是很重要。16、請介紹下Android中常用的五種布局。參考答案:FrameLayout(框架布局)LinearLayout (線性布局)AbsoluteLayout(絕對布局)RelativeLayout(相對布局)TableLayout(表格布局)17、請介紹下Android的數(shù)據(jù)存儲方式。參考答案:一.SharedPreferences方式二.文件存儲方式三.SQLite數(shù)據(jù)庫方式四.內(nèi)容提供器(Content provider)方式五. 網(wǎng)絡存儲方式18、請說明隱式、顯式Intent的區(qū)別?參考答案:顯式Intent直接用組件的名稱定義目標組件,這種方式很直接。但是由于開發(fā)人員往往并不清楚別的應用程序的組件名稱,因此,顯式Intent更多用于在應用程序內(nèi)部傳遞消息。比如在某應用程序內(nèi),一個Activity啟動一個Service。隱式Intent恰恰相反,它不會用組件名稱定義需要激活的目標組件,它更廣泛地用于在不同應用程序之間傳遞消息。在顯式Intent消息中,決定目標組件的唯一要素就是組件名稱,因此,如果你的Intent中已經(jīng)明確定義了目標組件的名稱,那么你就完全不用再定義其他Intent內(nèi)容。而對于隱式Intent則不同,由于沒有明確的目標組件名稱,所以必須由Android系統(tǒng)幫助應用程序?qū)ふ遗cIntent請求意圖最匹配的組件。19、請說明getWritableDatabase()和getReadableDatabase()的區(qū)別?參考答案:getReadableDatabase()并不是以只讀方式打開數(shù)據(jù)庫,而是先執(zhí)getWritableDatabase(),失敗的情況下才調(diào)用。getWritableDatabase()和getReadableDatabase()方法都可以獲取一個用于操作數(shù)據(jù)庫的SQLiteDatabase實例。但getWritableDatabase() 方法以讀寫方式打開數(shù)據(jù)庫,一旦數(shù)據(jù)庫的磁盤空間滿了,數(shù)據(jù)庫就只能讀而不能寫,倘若使用getWritableDatabase()打開數(shù)據(jù)庫就會出錯。getReadableDatabase()方法先以讀寫方式打開數(shù)據(jù)庫,如果數(shù)據(jù)庫的磁盤空間滿了,就會打開失敗,當打開失敗后會繼續(xù)嘗試以只讀方式打開數(shù)據(jù)庫。20、 請描述下Activity的生命周期。參考答案:activity的生命周期方法有:onCreate()、onStart()、onReStart()、onResume()、onPause()、onStop()、onDestory()。activity主要生命周期的方法說明:onCreate(Bundle savedInstanceState):創(chuàng)建activity時調(diào)用。設置在該方法中,還以Bundle的形式提供對以前儲存的任何狀態(tài)的訪問!onStart():activity變?yōu)樵谄聊簧蠈τ脩艨梢姇r調(diào)用。onResume():activity開始與用戶交互時調(diào)用(無論是啟動還是重新啟動一個活動,該方法總是被調(diào)用的)。onPause():activity被暫停或收回cpu和其他資源時調(diào)用,該方法用于保存活動狀態(tài)的,也是保護現(xiàn)場,壓棧吧!onStop():activity被停止并轉(zhuǎn)為不可見階段及后續(xù)的生命周期事件時調(diào)用。onRestart():重新啟動activity時調(diào)用。該活動仍在棧中,而不是啟動新的活動。onDestroy():activity被完全從系統(tǒng)內(nèi)存中移除時調(diào)用,該方法被調(diào)用21、如何將一個Activity設置成窗口的樣式。參考答案:只需要設置 一下Activity的主題就可以了,在AndroidManifest.xml 中定義 Activity的地方加上android :theme=android:style/Theme.Dialog這就使你的應用程序變成對話框的形式彈出來了?;蛘遖ndroid:theme=android:style/Theme.Translucent。就變成半透明的。22、如何退出Activity?參考答案:對于單一Activity的應用來說,退出很簡單,直接finish()即可。當然,也可以用killProcess()和System.exit()這樣的方法。23、你如何評價Android系統(tǒng)優(yōu)缺點?參考答案:優(yōu)勢:一、開放性 三、豐富的硬件選擇 五、無縫結(jié)合的Google應用支持缺點: 一、安全和隱私二,開發(fā)商自定義,不夠統(tǒng)一 四、同類機型用戶減少24、返回鍵與Home鍵區(qū)別?參考答案:返回鍵默認行為是finish處于前臺的Activity的即Activity的狀態(tài)為Destroy狀態(tài)為止,再次啟動該Activity是從onCreate開始的(不會調(diào)用onSaveInstanceState方法)。Home鍵默認是stop前臺的Activity即狀態(tài)為onStop為止而不

溫馨提示

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

評論

0/150

提交評論