Intent的Component的屬性接受一個ComponentName對象.
ComponentName須要指定包名和類名.java
//ManinActivity.java中爲按鍵綁定的監聽器 ComponentName comp = new ComponentName(ManinActivity,this, SecondActivity.class); Intent intent = new Intent(); intent.setComponent(comp); startActivity(intent);
指定Component屬性的Intent明確它要啓動哪一個組件,所以這種Intent被稱爲顯式Intent;
沒有指定Component屬性的Intent被稱爲隱式Intent.android
//ManinActivity.java中爲按鍵綁定的監聽器 Intent intent = new Intent(); intent.setAction(MainActivity.CRAZYIT_ACTION); intent.addCategory(MainActivity.CRAZYIT_CATEGORY); startActivity(intent)
所以被啓動的目標Activity中的配置文件中應該有以下信息:app
//AndroidManifest.xml配置文件中SecondActivity的配置信息 //上面代碼的MainActivity的路徑是在\org\crazyit\intent\MainActivity.java <activity android:name=".SecondActivity" android:label="@string/app_name"> <intent-filter> <action android:name="org.crazyit.intent.action.CRAZYIT_ACTION" /> <category android:name="org.crazyit.intent.category.CRAZYIT_ACTION" /> <category android:name="android.intent.category.DEFAULT" /> < /intent-filter> < /activity>
==說明==this
<intent-filter .../>元素中能夠包含如下子元素:code
<category android:name="android.intent.category.DEFAULT" />
Data屬性用於向Action屬性提供操做的數據,接受一個Uri對象.xml
schem://host:port/path
例如:content://www.baidu.com:88/test
,content是schem部分;www.baidu.com是host部分;88是port部分;test是path部分.對象
Data屬性與Type屬性的關係:字符串
在AndroidManifest.xml文件中爲組件聲明Data,Type屬性經過<data .../>元素,格式以下:string
<data android:mimeType="" android:scheme="" android:host="" android:port="" android:path="" android:pathPrefix="" android:pathPattern="" />
==說明==:it
至於Data屬性: 因爲Uri對象能夠分爲schem,host,port,path部分, 所以不須要與被啓動組件的<intent-filter .../>中<data .../>子元素的android:schem,android:host,android:port,android:path徹底知足.
//MainActivity.java Intent intent = new Intent(); String data = "http://wwww.crazyit.org"; Uri uri = Uri.parse(data); // intent.setAction(Intent.ACTION_VIEW); intent.setData(uri); startActivity(intent);
//對應的被啓動Activity的AndroidManifest.xml文件 <activity android:icon="drawable/ic_type" android:name="SecondActivity" <intent-filter> <action android:name="xxx"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="http" /*能夠省略*/ android:host="www.crazyit.org" /> </intent-filter> /activity>
該屬性用於多個Action之間的數據交流,其屬性值應該是一個Bundle對象,能夠經過Intent在不一樣Activity之間進行數據交換,
該屬性用於爲對應的Intent添加一些額外的控制標識,能夠調用intent 的addFlags()方法添加控制標識.