生活随笔
收集整理的這篇文章主要介紹了
Android 四大组件面试
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Android 四大組件面試
前言
僅用于知識點簡介,詳細(xì)描述建議百度,主要是一些個人的理解總結(jié),可以在面試時來回答,所以并不是很詳細(xì),只是總結(jié)~ 后續(xù)應(yīng)該會不斷更新
Activity、Service、BroatcastReceiver、ContentProvider
1. Activity
活動頁面
- 生命周期:
- onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()
- Activity 跳轉(zhuǎn)時:A -> B,A onPause() -> B onCreate() -> B onStart() -> B onResume() -> B onStop(),最后一步 A onStop 如果 B 是半透明即 A 依然可見,那么就不會調(diào)用
- 四個狀態(tài):1. running->當(dāng)前顯示在屏幕的activity(位于任務(wù)棧的頂部),用戶可見狀態(tài)。2. poused->依舊在用戶可見狀態(tài),但是界面焦點已經(jīng)失去,此Activity無法與用戶進(jìn)行交互。3. stopped->用戶看不到當(dāng)前界面,也無法與用戶進(jìn)行交互 完全被覆蓋.4. killed->當(dāng)前界面被銷毀,等待這系統(tǒng)被回收
- Activity 間傳遞數(shù)據(jù)- Intent 傳值- 靜態(tài)變量- SP、ContentProvider- 廣播- 外部存儲File- SQLite
- Activity 狀態(tài)的暫存與恢復(fù)- 一般會自動保存- 內(nèi)存不足時,可以在onSaveInstanceState() 保存信息到 Bundle
- 橫豎屏切換- 如果不設(shè)置 android:configChanges,則會根據(jù)生命周期重新構(gòu)建- 設(shè)置的話則會調(diào)用 onConfigurationChanged()
- 啟動模式- standard:每啟動一個Activity就會在棧頂創(chuàng)建一個新的實例- singleTop:該模式會判斷要啟動的Activity實例是否位于棧頂,如果位于棧頂直接復(fù)用,否則創(chuàng)建新的實例- singleTask:使Activity在整個應(yīng)用程序中只有一個實例。每次啟動Activity時系統(tǒng)首先檢查棧中是否存在當(dāng)前Activity實例,如果存在則直接復(fù)用,并把當(dāng)前Activity之上所有實例全部出棧- singleInstance:該模式的Activity會啟動一個新的任務(wù)棧來管理Activity實例,并且該勢力在整個系統(tǒng)中只有一個。無論從那個任務(wù)棧中啟動該Activity,都會使該 Activity 所在的任務(wù)棧轉(zhuǎn)移到前臺,從而使Activity顯示。主要作用是為了在不同程序中共享一個Activity
2. Service
服務(wù)
startService - 用于啟動一個服務(wù)執(zhí)行后臺任務(wù),不與組件進(jìn)行通信
- 停止服務(wù)使用stopService。
- 啟動后便可以在后臺無限的運行下去(除非系統(tǒng)殺死回收)
- 生命周期:onCreate、onStartCommand、onDestroy
2. bindService:- 用于啟動的服務(wù)需要進(jìn)行通信。- 停止服務(wù)使用unbindService- 多個組件可以同時與服務(wù)綁定,但是當(dāng)他們?nèi)慷冀獬壎〞r,服務(wù)就會銷毀。- 生命周期:onCreate、onBind、onUnbind、onDestroy
3. Broadcast Receive
廣播是一種廣泛運用的在應(yīng)用程序之間傳輸信息的機制。而廣播接收器是對發(fā)送出來的廣播進(jìn)行過濾接受并響應(yīng)的一類組件
注冊 AndroidManifest.xml中注冊;在運行時的代碼中使用Context.registerReceive()進(jìn)行注冊。
2. 類型- 普通廣播:sendBroadcast,接收順序隨機,接收器不能處理,不能攔截- 系統(tǒng)廣播:手機的基本操作(短信拍照等),有特定的 Intent-Filter和Action- 有序廣播:根據(jù)級別確定接收順序,同級別隨機。優(yōu)先級高的可以修改,可以攔截- 粘性廣播
3. 耗時的操作放在服務(wù)中,否則容易被殺死
4. Content Provider
使一個應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序
總結(jié)
以上是生活随笔為你收集整理的Android 四大组件面试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。