Intent簡介

什麼是Intent
在一個Android應用中,Intent是對執行某個操作的一個抽象描述,Intent負責提供組件之間相互調用的相關信息傳遞、實現調用者和被調用者之間的解耦

Intent的屬性

Intent是對執行某個操作的一個抽象描述,其描述的內容包括,對執行動作Action的描述、對操作數據的描述、還有4種附加屬性的描述:
Action:字符串,對執行動作的描述,在Intent類中定義了一些字符串作爲標準動作,如:public static final String ACTION_DIAL="android.intent.DIAL;"
data:是對執行動作所要操作的數據的描述,Android中採用URI來表示數據

除了Action和data外,還有4個屬性:
catagory:是被請求組件的額外描述信息,Intent類中也定義了一組字符串常量表示Intent不同的類別,完整的列表可以看API文檔中Intent類的xiangy6bufen
public static final String CATAGORY_LAUANCHER="android.intent.catagory.LAUNCHER"

extra:附加信息,除了data外,還可以通過extra附加信息,extra屬性使用Bundle類型進行數據傳遞,附加數據可以通過intent.putExtras()和intent.getExtras()進行傳入和讀取
component:組件,顯示指定intent的目標組件和名稱,如果指定了component系統會直接使用它指定的組件,而非匹配查找
type:數據類型,顯示指定intent的數據類型,一般intent的數據類型都能根據數據本身進行判定,但是通過設置這個屬性,可以強制使用顯示指定的類型而不再進行推導

解析Intent

Intent是一種在不同組件之間傳遞的請求信息,是應用程序發出的請求和意圖,作爲一個完整的消息傳遞機制,Intent需要發送端和接受端
當指定了component屬性後,就是現實的指定了目標組件,也就是接收端,如果沒有明確指定目標組件,那麼android系統會使用intent裏的action。data。category三個屬性來需找和匹配接受端

IntentFiter

應用程序組件可以使用IntentFiter來想系統說明自己可以相應和處理哪些Intent請求,組件一般通過androidMainfest.xml文件的<Intent-Fiter>描述

<activity android:name=”.MainTinyPhone” android:label=”@string/app_name”><intent-filter><action android:name=”android.intent.action.MAIN” /><category android:name=”android.intent.category.LAUNCHER” /></intent-filter></activity>

Intent類:


代碼樣例:
	private void onCallMe(){
		String phoneNumber = new String("669596");			
		Intent intent = new Intent(Intent.ACTION_DIAL, Uri
						.parse("tel:" + phoneNumber));				
		startActivity(intent);		
	}
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		// 按照main.xml來渲染用戶界面
		setContentView(R.layout.main);	
		onCallMe();	
		
	}




發佈了33 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章