天天看點

Android菜鳥的成長筆記(9)——Intent與Intent Filter(下)

接着上一篇的内容,下面我們再來看看Intent的Data與Type屬性。

一、Data屬性與Type屬性

Data屬性通常用于向Action屬性提供操作的資料,Data屬性接受一個Uri對象 格式:scheme://host:port/path 例如: content://com.android.contacts/contacts/1 tel:123 其中prot部分被省略了,contacts/1是path部分。 Type屬性用于指定該Data所指定Uri所對應的MIME類型,這種MIME類型可以是自定義的,但是要符合abc/xyz格式。

二、Data屬性與Type屬性之間的關系

Type屬性和Data同時出現會出現覆寫現象,如果要同時設定要使用setDataAndType()方法,舉例如下:

在manifest配置檔案中配置Activity的方法如下

三、Data屬性與Type屬性的比對方式

Type屬性也是使用者指定元件比對的元件,Type是需要嚴格比對的。 Data屬性則不需要嚴格比對,過程如下: 如果指定了android:scheme屬性,那麼隻要Intent的Data屬性的scheme部分與android:scheme屬性相同就可以啟動該元件。 如果制定了android:scheme屬性和android:host需要兩個屬性與Intent的Data部分的該部分相同則啟動該元件。 如果定制了android:scheme、android:host、android:port屬性則需要與該部分相同才能啟動該元件。 ...................

四、小練習

Android菜鳥的成長筆記(9)——Intent與Intent Filter(下)
Android菜鳥的成長筆記(9)——Intent與Intent Filter(下)
Android菜鳥的成長筆記(9)——Intent與Intent Filter(下)

五、Intent的其他屬性

Extra屬性:用于在多個Activity之間傳遞資料,該屬性其實是一個Bundle對象,後面在Activity間傳值的文章中将會介紹。 Flag屬性:一些額外的控制旗标,在後面将會詳細介紹。

繼續閱讀