Android学习——四大核心组件(核心知识点整理)
? ? ? ? Android 開發的四大組件分別是:活動(activity),用于表現功能;服務(service),后臺運行服務,不提供界面呈現;廣播接受者(Broadcast Receive),勇于接收廣播;內容提供者(Content Provider),支持多個應用中存儲和讀取數據,相當于數據庫。
Activity
1.定義:Activity組件,在應用中的一個Activity可以用來表示一個界面,意思可以理解為“活動”,即一個活動開始,代表Activity組件啟動,活動結束,代表一個Activity的生命周期結束。一個Android應用必須通過Activity來運行和啟動,Activity的生命周期交給系統統一管理。
2.三個基本狀態
- Resumed?? ?一個新Activity啟動入棧后,它在屏幕最前端,處于棧的最頂端,此時它處于可見并可和用戶交互的激活狀態。
- Paused?? ?當Activity被另一個透明或者Dialog樣式的Activity覆蓋時的狀態。此時它依舊與窗口管理器保持連接,系統繼續維護其內部狀態,所以它依然可見,但它己經失去了焦點故不可與用戶交互。
- Stopped?? ?當Activity被另一個Activity覆蓋、失去焦點并不可見時處于Stopped狀態
3.七大方法
- onCreate()? Activity創建時第一個調用的方法,通常我們在該方法中加載布局文件,初始化UI組件,事件注冊等等
- onStart()??在onCreate方法之后調用,用于顯示界面,但當前用戶不能進行交互
- onResume()??在onStart方法后調用,該方法執行完成后,用戶可進行交互,當前Activity進入Resumed狀態(運行狀態);當一個Paused狀態的activity被重新返回時,會再次調用該方法,讓Activity進入運行狀態
- onRestat()? 當一個Stopped狀態的Activity被返回時,該方法被調用,之后再調用onResume()方法進入運行狀態
- onPause()??當其他Activity(透明或窗口模式)進入時,該方法會被調用,讓當前Activity進入Paused狀態(暫停狀態);當前Activity還可見但不可交互,如果其他更高優先級的app需要內存時,當前Activity可能會被銷毀(kill);當前Activity被返回時會調用onResume()方法
- onStop()??當其他Activity完全覆蓋該Activity時,該方法被調用,當前Activity進入Stopped狀態(停止狀態);當前Activity不可見,如果其他更高優先級的app需要內存時,當前Activity可能會被銷毀(kill);當前Activity被返回時會調用onRestart()方法
- onDestroy()??當前Activity被銷毀時調用,通常在該方法中用來釋放資源,當前Activity killed?
4.生命周期
5.Activity之間通過Intent進行通信;直接通過Bundle對象來傳遞
Service
1.service(服務)是安卓中的四大組件之一,它通常用作在后臺處理耗時的邏輯,,并且可以和其他組件進行交互。
2.生命周期
3.啟動方式:··startService(啟動);··bindService(綁定服務)
4.startService()與bindService()區別:
- startService只是啟動Service,啟動它的組件(如Activity)和Service并沒有關聯,只有當Service調用stopSelf或者其他組件調用stopService服務才會終止。
- bindService方法啟動Service,其他組件可以通過回調獲取Service的代理對象和Service交互,而這兩方也進行了綁定,當啟動方銷毀時,Service也會自動進行unBind操作,當發現所有綁定都進行了unBind時才會銷毀Service。
5.IntentService
- 內部有一個工作線程來完成耗時的操作,只需實現onHandleIntent方法即可
- 完成工作后會自動終止服務
- 如果同時執行多個任務時,會以工作隊列的方式,一次執行
- 通過該類來完成本APP中耗時的工作
Broadcast?Receive
1.BroadcastReceiver也就是"廣播接收者”的意思,顧名思義,它就是用來接收來自系統和應用中的廣播。在Android系統中,廣播體現在方方面面,例如當開機完成后系統會產生一條廣播,接收到這條廣播就能實現開機啟動服務的功能:當網絡狀態改變時系統會產生一條廣播,接收到這條廣播就能及時地做出提示和保存數據等操作;當電池電量改變時,系統會產生一條廣播,接收到這條廣播就能在電量低時告知用戶及時保存進度,等等。
2.廣播接收器的類型
- Normal broadcasts:默認廣播
- Ordered broadcasts:有序廣播
- Sticky broadcasts:粘性廣播
3.注冊廣播接收器的兩種方式
- 靜態注冊:靜態注冊是在AndroidManifest.xml配置文件中注冊
- 動態注冊:需要在代碼中動態指定廣播地址并注冊,通常我們是在Activity或Service注冊一個廣播。
4.區別:動態注冊廣播接收器特點是當用來注冊的Activity關掉后,廣播也就失效了。靜態注冊無需擔憂廣播接收器是否被關閉,只要設備是開啟狀態,廣播接收器也是打開著的。也就是說哪怕app本身未啟動,該app訂閱的廣播在觸發時也會對它起作用。
ContentProvider
- ?android平臺提供了Content Provider使一個應用程序的指定數據集提供給其他應用程序。其他應用可以通過ContentResolver類從該內容提供者中獲取或存入數據。
- 只有需要在多個應用程序間共享數據是才需要內容提供者。例如,通訊錄數據被多個應用程序使用,且必須存儲在一個內容提供者中。它的好處是統一數據訪問方式。
- ContentProvider實現數據共享。ContentProvider用于保存和獲取數據,并使其對所有應用程序可見。這是不同應用程序間共享數據的唯一方式,因為android沒有提供所有應用共同訪問的公共存儲區。
- 開發人員不會直接使用ContentProvider類的對象,大多數是通過ContentResolver對象實現對ContentProvider的操作。
- ContentProvider使用URI來唯一標識其數據集,這里的URI以content://作為前綴,表示該數據由ContentProvider來管理。
總結
- Activity:是整個應用程序的門面,主要負責應用程序當中數據的展示,是各種各樣控件的容器,是用戶和應用程序之間交互的接口
- Service:在前臺不可見,但是承擔大部分數據處理工作,它和Activity的地位是并列的,區別在于Activity運行于前臺,Service運行于后臺,沒有圖形用戶界面,通常他為其他的組件提供后臺服務或監控其他組件的運行狀態
- BroadcastReceiver:實現消息的異步接收,他非常類似事件編程中的監聽器,但他與普通事件監聽器有所不同,普通的事件監聽器監聽的事件源是程序中的控件,而BroadcastReceiver監聽的事件源是Android應用中其他的組件
- ContentProvider:為不同的應用程序之間數據訪問提供統一的訪問接口,通常它與ContentResolver結合使用,一個是應用程序使用ContentProvider來暴露自己的數據,而另外一個是應用程序通過ContentResolver來訪問數據
總結
以上是生活随笔為你收集整理的Android学习——四大核心组件(核心知识点整理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx 作为 WebSockets
- 下一篇: Android 四大开发组件