溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android的核心組件有哪些

發(fā)布時間:2021-06-29 14:43:44 來源:億速云 閱讀:388 作者:Leah 欄目:編程語言

Android的核心組件有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Activity  

Activity 是 Android 應用程序核心組件中最基本的一種,Activity是用于處理UI相關業(yè)務的,比如加載界面、監(jiān)聽用戶操作事件。是用戶和應用程序交互的窗口。 

在 Android 應用程序中,一個 Activity 通常對應一個單獨的視圖。一個 Android 應用程序是由一個或多個 Activity 組成的,這些 Activity 相當于 Web 應用程序中的網頁,用于顯示信息,并且相互之間可以進行跳轉。和網頁跳轉不同的是,Activity 之間的跳轉可以有返回值。 

Activity 是由 Android 系統(tǒng)進行維護的,它有自己的生命周期,即“產生、運行、銷毀”,但是在這個過程中會調用許多方法,主要包括7個生命周期方法,創(chuàng)建 onCreate()、激活 onStart()、恢復 onResume()、暫停 onPause()、停止 onStop()、銷毀 onDestroy()和重啟 onRestart() 等。詳細流程如下圖:

 Android的核心組件有哪些

創(chuàng)建一個Activity需繼承自android.app.Activity這個類,重寫onCreate(),在onCreate()里面調用setContentView(參數)來加載布局,參數就是布局文件。配置則需要在清單文件的Application節(jié)點下面注冊Actvitiy,如果要首先啟動該Activity則添加帶有category節(jié)點且值為LAUNCHER的intent-filter節(jié)點,清單文件的配置如下。

<application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       <activity
           android:name=".MainActivity"
           android:label="@string/app_name" >
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>

Service

Service 是一種類似于 Activity 但是沒有視圖的程序,它沒有用戶界面,可以在后臺運行很長時間,相當于操作系統(tǒng)中的一個服務,簡單個人理解為他保持程序在后臺運行。

Service還有一個作用就是提升進程(每一個應用就是一個進程)的優(yōu)先級,進程的優(yōu)先級指的是在Android系統(tǒng)中,會把正在運行的應用確定一個優(yōu)先級,當內存空間不足時,系統(tǒng)會根據進程的優(yōu)先級清理掉一部分進程占用的內存空間,以獲得足夠的內存空間以供新啟用的應用運行。

Android 中 Service有兩種定義,即本地 Service 和遠程 Service。本地 Service 是只能由承載該 Service 的應用程序訪問的組件,而遠程 Service 是供在設備上運行的其他應用程序遠程訪問的 Service。  

通過 Context.startService(Intent service) 可以啟動一個 Service,其中intent定義方法與跳轉Activity類似,只需把Actvity類換成Service類即可。其生命周期為啟動時onCreate()–>onStartCommand()–>銷毀時onDestroy(), 反復調用startService()只會導致Service反復執(zhí)行onStartCommand()。

通過 Context. bindService() 可以綁定一個 Service。調用bindService()方法可以實現Activity與Service的綁定,調用unbindService()可以解除綁定。在Activity被銷毀之前,必須解除與Service的綁定。生命周期為onCreate() -> 當第1次綁定時執(zhí)行– onBind() -> 當第1次綁定時執(zhí)行– onDestroy() -> 當解除綁定時執(zhí)行。

下圖為兩種狀態(tài)的Service生命周期說明:

 Android的核心組件有哪些

BroadcastReceiver

BroadcastReceiver 的意思是“廣播接收者”,顧名思義,它用來接收來自系統(tǒng)和其他應用程序的廣播,并做出回應。所以ContentProvider可以將應用程序自身的數據對外(對其它應用程序)共享,使得其它應用可以對自身的數據進行增、刪、改、查操作。

在 Android 系統(tǒng)中,當有特定事件發(fā)生時就會產生相應的廣播。廣播體現在方方面面。舉例說,當開機過程完成后,系統(tǒng)會產生一條廣播,接收到這條廣播就能實現開機啟動服務的功能;當網絡狀態(tài)改變時,系統(tǒng)會產生一條廣播,接收到這條廣播就能及時地做出提示和保存數據等操作;當電池電量改變時,系統(tǒng)會產生一條廣播,接收到這條廣播就能在電量低時告知用戶及時保存進度等。  

BroadcastReceiver 的 2 種注冊方式:

  • 在 AndroidManifest. xml 中進行靜態(tài)注冊;

  • 在運行時的代碼中使用 Context.registerReceiver() 進行動態(tài)注冊。

只要注冊了 BroadcastReceiver,即使對應的事件廣播來臨時應用程序并未啟動,系統(tǒng)也會自動啟動該應用程序對事件進行處理。另外,用戶還可以通過 Context.sendBroadcast() 將自己的 Intent 對象廣播給其他的應用程序。  

ContentProvider

廣播接收器,顧名思義這是用于接收應用發(fā)送的廣播的系統(tǒng)組件。文件、數據庫等數據在 Android 系統(tǒng)內是私有的,僅允許被特定應用程序直接使用。在兩個程序之間,數據的交換或共享由 ContentProvider 實現。廣播是一種1對多的通信方式,即存在1個發(fā)送方,若干個接收方。  

ContentProvider 類實現了一組標準方法的接口,從而能夠讓其他的應用保存或讀取 ContentProvider 提供的各種數據類型。  

Intent

Intent 并不是 Android 應用程序四大核心組件之一,但是其重要性無可替代。Android 應用程序核心組件中的三大核心組件 —— Activity、Service、BroadcastReceiver。通過消息機制被啟動激活,而所使用的消息就是 Intent。Intent 是對即將要進行的操作的抽象描述,承擔了 Android 應用程序三大核心組件相互之間的通信功能,所以是十分重要的。  

看完上述內容,你們掌握Android的核心組件有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI