Android面試題

1. 請描述下Activity的生命週期。

必調用的三個方法:onCreate() –> onStart() –> onResume(),用AAA表示

(1)父Activity啓動子Activity,子Actvity退出,父Activity調用順序如下
AAA –> onFreeze() –> onPause() –> onStop() –> onRestart() –> onStart(),onResume() …
(2)用戶點擊Home,Actvity調用順序如下
AAA –> onFreeze() –> onPause() –> onStop() — Maybe –> onDestroy() – Maybe
(3)調用finish(), Activity調用順序如下
AAA –> onPause() –> onStop() –> onDestroy()
(4)在Activity上顯示dialog, Activity調用順序如下
AAA
(5)在父Activity上顯示透明的或非全屏的activity,Activity調用順序如下
AAA –> onFreeze() –> onPause()
(6)設備進入睡眠狀態,Activity調用順序如下
AAA –> onFreeze() –> onPause()

2. 如果後臺的Activity由於某原因被系統回收了,如何在被系統回收之前保存當前狀態?

onSaveInstanceState()

當你的程序中某一個Activity A在運行時,主動或被動地運行另一個新的Activity B,這個時候A會執行onSaveInstanceState()。B完成以後又會來找A,這個時候就有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新調用onCreate()方法,不同於直接啓動的是這回onCreate()裏是帶上了參數savedInstanceState;而沒被收回的就直接執行onResume(),跳過onCreate()了。

3. 如何將一個Activity設置成窗口的樣式。

在AndroidManifest.xml 中定義Activity的地方一句話android:theme="@android:style/Theme.Dialog"或android:theme="@android:style/Theme.Translucent"就變成半透明的

4. 如何退出Activity?如何安全退出已調用多個Activity的Application?

對於單一Activity的應用來說,退出很簡單,直接finish()即可。

當然,也可以用killProcess()和System.exit()這樣的方法。

http://blog.csdn.net/debug2/archive/2011/02/18/6193644.aspx

5. 請介紹下Android中常用的五種佈局。

FrameLayout(框架佈局),LinearLayout (線性佈局),AbsoluteLayout(絕對佈局),RelativeLayout(相對佈局),TableLayout(表格佈局)

6. 請介紹下Android的數據存儲方式。

一.SharedPreferences方式

二.文件存儲方式

三.SQLite數據庫方式

四.內容提供器(Content provider)方式

五. 網絡存儲方式

7. 請介紹下ContentProvider是如何實現數據共享的。

創建一個屬於你自己的Content provider或者將你的數據添加到一個已經存在的Content provider中,前提是有相同數據類型並且有寫入Content provider的權限。

8. 如何啓用Service,如何停用Service。

9. 註冊廣播有幾種方式,這些方式有何優缺點?請談談Android引入廣播機制的用意。

10. 請解釋下在單線程模型中Message、Handler、Message Queue、Looper之間的關係。

11. AIDL的全稱是什麼?如何工作?能處理哪些類型的數據?

12. 請解釋下Android程序運行時權限與文件系統權限的區別。

13. 系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由。

14. 有一個一維整型數組int[]data保存的是一張寬爲width,高爲height的圖片像素值信息。請寫一個算法,將該圖片所有的白色不透明(0xffffffff)像素點的透明度調整爲50%。

15. 你如何評價Android系統?優缺點。
發佈了67 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章