標籤:run 程式 需要 nic 過程 響應 provider 隱式intent 表達
IPC (Inter-Process Communication) 意思是: 進程間的通訊,是指兩個進程之間進行資料交換的過程。
Android中如何開啟多進程呢?
只需要給四大組件(Activity、Service、Receiver、ContentProvider)在Android Menifest 中指定 android:process 屬性即可。
不同的進程組件擁有獨立的虛擬機器、Application以及記憶體空間,直觀的理解相當於兩個應用不同的UID。
不同進程中,存在記憶體中的資料是互不干擾的,對其他進程不會造成任何影響。
多進程造成的問題:
1、靜態成員變數、單例模式等凡是存在記憶體中的資料完全失效
2、Application 會建立多次
3、線程同步完全失效
Intent 意圖,意向
Intent組件雖然不是四大組件,但卻是串連四大組件的橋樑,學習好這個知識,也非常的重要。
Intent是一種運行時綁定(runtime binding)機制,它能在程式啟動並執行過程中串連兩個不同的組件。通過Intent,你的程式可以向Android表達某種請求或者意願,Android會根據意願的內容選擇適當的組件來響應。
圖 1-1 通過Intent進行通訊
如果Activity1需要和Activity2進行聯絡,二者不需要直接聯絡,而是通過Intent作為橋樑。
Intent由以下各個組成部分:
- component(組件):目的組件
- action(動作):用來表現意圖的行動
- category(類別):用來表現動作的類別
- data(資料):表示與動作要操縱的資料
- type(資料類型):對於data範例的描寫
- extras(擴充資訊):擴充資訊
- Flags(標誌位):期望這個意圖的運行模式
Intent類型分為顯式Intent(直接類型)、隱式Intent(間接類型)。官方建議使用隱式Intent。上述屬性中,component屬性為直接類型,其他均為間接類型。
相比與顯式Intent直接指定活動,隱式Intnet則含蓄了許多,它並不明確指出我們想要啟動哪一個活動,而是指定一系列更為抽象的action和category等資訊,然後交由系統去分析這個Intent,並幫我們找出合適的活動去啟動。
Android基礎知識學習