第3章 Android基礎相關面試題
1、Activity問題講解
a) Activity的生命周期
1.Activity的4種狀態
running / paused / stopped / killed
running:activity處於活動狀態,用戶可以點擊屏幕,屏幕做出響應,此時該activity處於棧頂
paused:activity失去焦點,用戶不能點擊,或者被一個非全屏activity占據、透明界面放入棧頂
stopped:當該activity被完全覆蓋
killed:被android系統回收
2.Activity的生命周期
Activity啟動->onCreate()->onStart()->onReasume()
點擊Home鍵回到主界面(Activity不可見)->onPause()->onStop()
當我們再次回到原activity時->onRestart()->onStart()->onReasume()
退出當前activity時->onPause()->onStop()->onDestroy()
3.Android進程優先級
前臺進程:正在前臺和用戶交互的activity或者是和前臺activity綁定的service
服務進程:在後臺開啟一個服務
後臺進程:前臺進程點擊hone鍵後就變成了後臺進程
空進程:不屬於前面四種進程,android系統隨時可以殺掉
b) Android的任務棧
c) Activity啟動模式
standard 標準模式:默認的啟動模式
singleTop 棧頂復用模式:須要創建的Activity已經處於棧頂時,此時會直接復用棧頂的Activity。不會再創建新的Activity;若須要創建的Activity不處於棧頂,此時會又一次創建一個新的Activity入棧,同Standard模式一樣
singleInstance 單實例模式:SingleInstance比較特殊,是全局單例模式,是一種加強的SingleTask模式。它除了具有它所有特性外,還加強了一點:具有此模式的Activity僅僅能單獨位於一個任務棧中。
d) Scheme跳轉協議
Android中的Scheme是一種頁面內跳轉協議,通過自定義Scheme協議,可以跳轉到app中的任何頁面。
服務器可以定制化跳轉app頁面
app可以通過Scheme跳轉到另一個app頁面
可以通過h5頁面跳轉app原生頁面
協議格式
Uri.parse("qh://test:8080/goods?goodsId=8897&name=fuck")
qh代表Scheme協議名稱
test代表Scheme作用的地址域
8080代表改路徑的端口號
/goods代表的是指定頁面(路徑)
goodsId和name代表傳遞的兩個參數
Scheme使用
http://blog.csdn.net/lishuiyuntian/article/details/77477756
2、Fragment問題講解
a) Fragment為什麽會被稱為第五大組件
b) Fragment加載到Activity中的兩種方式
1.靜態加載
xml方式
2.動態加載
FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.collapseActionView,new Fragment()); fragmentTransaction.commit();
c) FragmentPageAdapter與FragmentStatePageAdapter區別
FragmentPageAdapter適用於界面較少的情況
FragmentStatePageAdapter適用於界面較多的情況
看源碼中的destroyItem函數發現FragmentStatePageAdapter在Viewpage切換界面的時候會真正的回收內存,而FragmentPageAdapter不會
d) Fragment的生命周期
e) Fragement之間的通信
1.Fragemnt調用Activity中的方法
2.Activity調用Fragment中的方法
3.Fragment調用Fragment中的方法
3、Service問題講解
4、broadcast問題講解
5、webview安全漏洞問題講解
6、binder問題講解
第3章 Android基礎相關面試題