這些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沒有被回收,被回收
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()這樣的方法。
5.請介紹下Android中常用的五種佈局。
FrameLayout(框架佈局),LinearLayout (線性佈局),AbsoluteLayout(絕對佈局),RelativeLayout(相對佈局),TableLayout(表格佈局)
6.請介紹下Android的資料儲存方式。
一.SharedPreferences方式
二.檔案儲存方式
三.SQLite資料庫方式
四.內容提供器(Content provider)方式
五.網路儲存方式
7.請介紹下ContentProvider是如何實現資料共享的。