Android中隱式意圖(Intent)用法

   Intent對象在Android應用開發中起到很大的做用,例如激活組件(Activity,Service 等組件)或者攜帶數據的功能,相信你們在開發中常常會用到這些功能,Android中的意圖分爲顯式意圖隱式意圖,顯式意圖你們應該用得比較多,但隱式意圖在開發過程當中也是必不可少的。在這篇文章中粗略講解下我的對隱式意圖的用法。 html

假設情景:我要從一個Activity跳轉到另一個Activity中,經過隱式意圖來激活另一個Activity,應該如何實現呢? android

首先,咱們在Manifest.xml配置文件中配置intent-filter過濾器節點: app

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.andyidea.intentdemo"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk android:minSdkVersion="8" />  
  8.   
  9.     <application  
  10.         android:icon="@drawable/ic_launcher"  
  11.         android:label="@string/app_name" >  
  12.         <activity  
  13.             android:name=".IntentFirstActivity"  
  14.             android:label="@string/app_name" >  
  15.             <intent-filter>  
  16.                 <action android:name="android.intent.action.MAIN" />  
  17.   
  18.                 <category android:name="android.intent.category.LAUNCHER" />  
  19.             </intent-filter>  
  20.         </activity>  
  21.           
  22.         <activity  
  23.             android:name=".IntentSecondActivity"  
  24.             android:label="@string/app_name">  
  25.             <intent-filter >  
  26.                 <!--能夠定製多個動做  程序中只要有一個匹配就行 -->  
  27.                 <action android:name="android.andyidea.second"/>  
  28.                   
  29.                 <!--必須指定一個類別  用startActivity啓動 -->  
  30.                 <category android:name="android.andyidea.category" />  
  31.                   
  32.                 <!--默認必須指定一個類別 用startActivity啓動 -->  
  33.                 <category android:name="android.intent.category.DEFAULT" />   
  34.                   
  35.                 <!--路徑匹配  協議://主機名:端口號/路徑 -->  
  36.                 <data android:scheme="http" android:host="www.andyidea.com" android:port="8080" android:path="/person"/>  
  37.                   
  38.                 <!--數據類型匹配 -->  
  39.                 <data android:mimeType="jpeg"/>  
  40.             </intent-filter>  
  41.         </activity>  
  42.     </application>  
  43.   
  44. </manifest>  
第二,咱們在第一個Activity中添加相應的代碼來實現匹配,這裏就不作過多解釋了,解釋在代碼的註釋中。
[html]  view plain copy
  1. /**定義意圖對象*/  
  2. Intent intent = new Intent();  
  3.   
  4. /**設置動做:能夠定製多個動做  程序中只要有一個匹配就行*/  
  5. intent.setAction("android.andyidea.second");  
  6.   
  7. /**添加類別:startActivity(intent)啓動Activity時會自動添加  
  8.  * android.intent.category.DEFAULT類別,因此須要在Manifest中  
  9.  * 配置該類別.但在程序中不須要明確添加該類別*/  
  10. intent.addCategory("android.andyidea.category");  
  11.   
  12. /**設置數據:API中說這個方法會將setType的方法設置的類型清除掉*/  
  13. intent.setData(Uri.parse("http://www.andyidea.com:8080/person"));  
  14.   
  15. /**設置類型:API中說這個方法會將setData上面的方法設置的數據清除掉*/  
  16. intent.setType("jpeg");  
  17.   
  18. /**同時設置數據和類型:若是Intent過濾器中同時包含數據和數據類型的設置  
  19.  * 就只能使用該方式來設置數據和類型*/  
  20. intent.setDataAndType(Uri.parse("http://www.andyidea.com:8080/person"), "jpeg");  
  21.   
  22. /**啓動組件*/  
  23. startActivity(intent);  
至此,咱們應該對Android中的隱式意圖有個粗略的瞭解了吧。
相關文章
相關標籤/搜索