Android四大元件中每個元件的作用是什麼?它們都可以開啟多程式嗎?

daqianmen發表於2021-09-09

Activity


Activity可以開啟多程式android:process

用於顯示頁面與使用者互動,四大元件中唯一一個使用者可感知的元件,

1,生命週期

開啟方式透過startActivity,正常的生命週期為 onCreate onStart onResume onPause onStop onDestroy

onCreate和onDestroy是根據頁面建立和銷燬劃分的

onStart和onStop是根據頁面可見性劃分的 onRestart從onStop返回onStart

onResume和onPause是根據是否與使用者互動劃分的

不正常銷燬時比如橫豎屏切換,會呼叫onSavedInstanceState用來儲存頁面資訊,在恢復的時候呼叫onRestoreInstanceState也可呼叫onCreate恢復資料,但onCreate中Bundle的資料有可能是null,需要額外判斷,推薦使用onRestoreInstanceState

也可以透過android:configChanges屬性來配置,防止頁面不正常銷燬

2,啟動模式

Instance 正常都是這種啟動模式,一個一個往棧裡放就可以了

singleTop 棧頂複用模式,如果Activity A在棧頂了你在去啟動A的話那麼A就不會重建,而是會呼叫newInstance方法

singleTask 棧複用模式,一個棧中只能有一個物件,比如棧中ABC,A是這個模式下的,那麼我在啟動A,這貨會把BC都出棧,自己到棧頂,然後呼叫newInstance方法

singleInstance 一個棧就一個物件,唯我獨尊

3,這裡也可以聯想到Activity頁面的繪製,和Activity的啟動流程


BroadcastReceiver

android:process 同時需要配置許可權,還有android:exported="true"

廣播,可進行通知

1,註冊方式

靜態註冊:在清單中註冊,應用開不開啟都可接收

動態註冊:在程式碼中註冊。主要執行註冊程式碼後才能接收,記得解註冊

2,廣播分類

有序廣播,按優先順序有序傳輸,可攔截

無序廣播,不可攔截,所有接受者都可以接到

3,誇程式


Service

服務,可用於在後端開啟耗時操作,另外他也用於程式間通訊

可以配置android:process

1,開啟方式有兩種

startService 

onCreate onStartCommand 多次startService onCreate只能呼叫一次,onStartCommand呼叫多次

bindService 程式間通訊需要這種開啟方式,unBindService解綁

onCreate onBind 多次呼叫bindService只會呼叫一次


ContentProvider

可配置android:process

誇程式提供資料包括但不限於應用資料庫中資料

設定了ContentProvider複寫增 刪 改 查也可監聽資料變動,應用起不起動都可呼叫ContentProvider

並且他是四大元件中唯一一個在應用啟動前呼叫onCreate的元件


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2809066/,如需轉載,請註明出處,否則將追究法律責任。

相關文章