日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android学习——四大核心组件(核心知识点整理)

發(fā)布時(shí)間:2023/12/20 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android学习——四大核心组件(核心知识点整理) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ? Android 開(kāi)發(fā)的四大組件分別是:活動(dòng)(activity),用于表現(xiàn)功能;服務(wù)(service),后臺(tái)運(yùn)行服務(wù),不提供界面呈現(xiàn);廣播接受者(Broadcast Receive),勇于接收廣播;內(nèi)容提供者(Content Provider),支持多個(gè)應(yīng)用中存儲(chǔ)和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫(kù)。

Activity

1.定義:Activity組件,在應(yīng)用中的一個(gè)Activity可以用來(lái)表示一個(gè)界面,意思可以理解為“活動(dòng)”,即一個(gè)活動(dòng)開(kāi)始,代表Activity組件啟動(dòng),活動(dòng)結(jié)束,代表一個(gè)Activity的生命周期結(jié)束。一個(gè)Android應(yīng)用必須通過(guò)Activity來(lái)運(yùn)行和啟動(dòng),Activity的生命周期交給系統(tǒng)統(tǒng)一管理。

2.三個(gè)基本狀態(tài)

  • Resumed?? ?一個(gè)新Activity啟動(dòng)入棧后,它在屏幕最前端,處于棧的最頂端,此時(shí)它處于可見(jiàn)并可和用戶(hù)交互的激活狀態(tài)。
  • Paused?? ?當(dāng)Activity被另一個(gè)透明或者Dialog樣式的Activity覆蓋時(shí)的狀態(tài)。此時(shí)它依舊與窗口管理器保持連接,系統(tǒng)繼續(xù)維護(hù)其內(nèi)部狀態(tài),所以它依然可見(jiàn),但它己經(jīng)失去了焦點(diǎn)故不可與用戶(hù)交互。
  • Stopped?? ?當(dāng)Activity被另一個(gè)Activity覆蓋、失去焦點(diǎn)并不可見(jiàn)時(shí)處于Stopped狀態(tài)

3.七大方法

  • onCreate()? Activity創(chuàng)建時(shí)第一個(gè)調(diào)用的方法,通常我們?cè)谠摲椒ㄖ屑虞d布局文件,初始化UI組件,事件注冊(cè)等等
  • onStart()??在onCreate方法之后調(diào)用,用于顯示界面,但當(dāng)前用戶(hù)不能進(jìn)行交互
  • onResume()??在onStart方法后調(diào)用,該方法執(zhí)行完成后,用戶(hù)可進(jìn)行交互,當(dāng)前Activity進(jìn)入Resumed狀態(tài)(運(yùn)行狀態(tài));當(dāng)一個(gè)Paused狀態(tài)的activity被重新返回時(shí),會(huì)再次調(diào)用該方法,讓Activity進(jìn)入運(yùn)行狀態(tài)
  • onRestat()? 當(dāng)一個(gè)Stopped狀態(tài)的Activity被返回時(shí),該方法被調(diào)用,之后再調(diào)用onResume()方法進(jìn)入運(yùn)行狀態(tài)
  • onPause()??當(dāng)其他Activity(透明或窗口模式)進(jìn)入時(shí),該方法會(huì)被調(diào)用,讓當(dāng)前Activity進(jìn)入Paused狀態(tài)(暫停狀態(tài));當(dāng)前Activity還可見(jiàn)但不可交互,如果其他更高優(yōu)先級(jí)的app需要內(nèi)存時(shí),當(dāng)前Activity可能會(huì)被銷(xiāo)毀(kill);當(dāng)前Activity被返回時(shí)會(huì)調(diào)用onResume()方法
  • onStop()??當(dāng)其他Activity完全覆蓋該Activity時(shí),該方法被調(diào)用,當(dāng)前Activity進(jìn)入Stopped狀態(tài)(停止?fàn)顟B(tài));當(dāng)前Activity不可見(jiàn),如果其他更高優(yōu)先級(jí)的app需要內(nèi)存時(shí),當(dāng)前Activity可能會(huì)被銷(xiāo)毀(kill);當(dāng)前Activity被返回時(shí)會(huì)調(diào)用onRestart()方法
  • onDestroy()??當(dāng)前Activity被銷(xiāo)毀時(shí)調(diào)用,通常在該方法中用來(lái)釋放資源,當(dāng)前Activity killed?

4.生命周期

5.Activity之間通過(guò)Intent進(jìn)行通信;直接通過(guò)Bundle對(duì)象來(lái)傳遞

Service

1.service(服務(wù))是安卓中的四大組件之一,它通常用作在后臺(tái)處理耗時(shí)的邏輯,,并且可以和其他組件進(jìn)行交互。

2.生命周期

3.啟動(dòng)方式:··startService(啟動(dòng));··bindService(綁定服務(wù))

4.startService()與bindService()區(qū)別:

  • startService只是啟動(dòng)Service,啟動(dòng)它的組件(如Activity)和Service并沒(méi)有關(guān)聯(lián),只有當(dāng)Service調(diào)用stopSelf或者其他組件調(diào)用stopService服務(wù)才會(huì)終止。
  • bindService方法啟動(dòng)Service,其他組件可以通過(guò)回調(diào)獲取Service的代理對(duì)象和Service交互,而這兩方也進(jìn)行了綁定,當(dāng)啟動(dòng)方銷(xiāo)毀時(shí),Service也會(huì)自動(dòng)進(jìn)行unBind操作,當(dāng)發(fā)現(xiàn)所有綁定都進(jìn)行了unBind時(shí)才會(huì)銷(xiāo)毀Service。

5.IntentService

  • 內(nèi)部有一個(gè)工作線程來(lái)完成耗時(shí)的操作,只需實(shí)現(xiàn)onHandleIntent方法即可
  • 完成工作后會(huì)自動(dòng)終止服務(wù)
  • 如果同時(shí)執(zhí)行多個(gè)任務(wù)時(shí),會(huì)以工作隊(duì)列的方式,一次執(zhí)行
  • 通過(guò)該類(lèi)來(lái)完成本APP中耗時(shí)的工作

Broadcast?Receive

1.BroadcastReceiver也就是"廣播接收者”的意思,顧名思義,它就是用來(lái)接收來(lái)自系統(tǒng)和應(yīng)用中的廣播。在Android系統(tǒng)中,廣播體現(xiàn)在方方面面,例如當(dāng)開(kāi)機(jī)完成后系統(tǒng)會(huì)產(chǎn)生一條廣播,接收到這條廣播就能實(shí)現(xiàn)開(kāi)機(jī)啟動(dòng)服務(wù)的功能:當(dāng)網(wǎng)絡(luò)狀態(tài)改變時(shí)系統(tǒng)會(huì)產(chǎn)生一條廣播,接收到這條廣播就能及時(shí)地做出提示和保存數(shù)據(jù)等操作;當(dāng)電池電量改變時(shí),系統(tǒng)會(huì)產(chǎn)生一條廣播,接收到這條廣播就能在電量低時(shí)告知用戶(hù)及時(shí)保存進(jìn)度,等等。

2.廣播接收器的類(lèi)型

  • Normal broadcasts:默認(rèn)廣播
  • Ordered broadcasts:有序廣播
  • Sticky broadcasts:粘性廣播

3.注冊(cè)廣播接收器的兩種方式

  • 靜態(tài)注冊(cè):靜態(tài)注冊(cè)是在AndroidManifest.xml配置文件中注冊(cè)
  • 動(dòng)態(tài)注冊(cè):需要在代碼中動(dòng)態(tài)指定廣播地址并注冊(cè),通常我們是在Activity或Service注冊(cè)一個(gè)廣播。

4.區(qū)別:動(dòng)態(tài)注冊(cè)廣播接收器特點(diǎn)是當(dāng)用來(lái)注冊(cè)的Activity關(guān)掉后,廣播也就失效了。靜態(tài)注冊(cè)無(wú)需擔(dān)憂廣播接收器是否被關(guān)閉,只要設(shè)備是開(kāi)啟狀態(tài),廣播接收器也是打開(kāi)著的。也就是說(shuō)哪怕app本身未啟動(dòng),該app訂閱的廣播在觸發(fā)時(shí)也會(huì)對(duì)它起作用。

ContentProvider

  • ?android平臺(tái)提供了Content Provider使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。其他應(yīng)用可以通過(guò)ContentResolver類(lèi)從該內(nèi)容提供者中獲取或存入數(shù)據(jù)。
  • 只有需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。例如,通訊錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中。它的好處是統(tǒng)一數(shù)據(jù)訪問(wèn)方式。
  • ContentProvider實(shí)現(xiàn)數(shù)據(jù)共享。ContentProvider用于保存和獲取數(shù)據(jù),并使其對(duì)所有應(yīng)用程序可見(jiàn)。這是不同應(yīng)用程序間共享數(shù)據(jù)的唯一方式,因?yàn)閍ndroid沒(méi)有提供所有應(yīng)用共同訪問(wèn)的公共存儲(chǔ)區(qū)。
  • 開(kāi)發(fā)人員不會(huì)直接使用ContentProvider類(lèi)的對(duì)象,大多數(shù)是通過(guò)ContentResolver對(duì)象實(shí)現(xiàn)對(duì)ContentProvider的操作。
  • ContentProvider使用URI來(lái)唯一標(biāo)識(shí)其數(shù)據(jù)集,這里的URI以content://作為前綴,表示該數(shù)據(jù)由ContentProvider來(lái)管理。

總結(jié)

  • Activity:是整個(gè)應(yīng)用程序的門(mén)面,主要負(fù)責(zé)應(yīng)用程序當(dāng)中數(shù)據(jù)的展示,是各種各樣控件的容器,是用戶(hù)和應(yīng)用程序之間交互的接口
  • Service:在前臺(tái)不可見(jiàn),但是承擔(dān)大部分?jǐn)?shù)據(jù)處理工作,它和Activity的地位是并列的,區(qū)別在于Activity運(yùn)行于前臺(tái),Service運(yùn)行于后臺(tái),沒(méi)有圖形用戶(hù)界面,通常他為其他的組件提供后臺(tái)服務(wù)或監(jiān)控其他組件的運(yùn)行狀態(tài)
  • BroadcastReceiver:實(shí)現(xiàn)消息的異步接收,他非常類(lèi)似事件編程中的監(jiān)聽(tīng)器,但他與普通事件監(jiān)聽(tīng)器有所不同,普通的事件監(jiān)聽(tīng)器監(jiān)聽(tīng)的事件源是程序中的控件,而B(niǎo)roadcastReceiver監(jiān)聽(tīng)的事件源是Android應(yīng)用中其他的組件
  • ContentProvider:為不同的應(yīng)用程序之間數(shù)據(jù)訪問(wèn)提供統(tǒng)一的訪問(wèn)接口,通常它與ContentResolver結(jié)合使用,一個(gè)是應(yīng)用程序使用ContentProvider來(lái)暴露自己的數(shù)據(jù),而另外一個(gè)是應(yīng)用程序通過(guò)ContentResolver來(lái)訪問(wèn)數(shù)據(jù)

總結(jié)

以上是生活随笔為你收集整理的Android学习——四大核心组件(核心知识点整理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。