關於Intent

查看聯繫人的兩種設置方式:

  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_GET_CONTENT);  
  3. //用來列出列表中的所有人的電話號碼  
  4. intent.setType("vnd.android.cursor.item/phone");  
  5. startActivityForResult(intent, PICK_CONTACT);  

  1. Intent intent = new Intent(); 
  2. //String data = "http://www.baidu.com"; 
  3. String data = "content://contacts/people/"
  4. Uri uri = Uri.parse(data); 
  5. intent.setAction(Intent.ACTION_VIEW); 
  6. intent.setData(uri); 
  7. startActivity(intent); 

Intent的屬性設置:

①代碼中,action只有一個起作用,category多個起作用

  1. Intent intent = new Intent(); 
  2. intent.setAction("com.xc.demo"); 
  3. intent.addCategory("hi"); 
  4. intent.addCategory("hello"); 
  5. intent.setAction("com.xc.demo.action");             
  6. startActivity(intent); 

跳轉時,action爲com.xc.demo.action,category爲[hi,hello]

對應的xml設置爲:

  1. <intent-filter> 
  2.      <action android:name="com.xc.demo" /> //兩個action可以設置一個,也可以隨意設置N個
  3.      <action android:name="com.xc.demo.action" /> 
  4.      <category android:name="hi"/> //category必須設置兩個,對應代碼來
  5.      <category android:name="hello"/> 
  6.      <category android:name="android.intent.category.DEFAULT"/> 
  7. </intent-filter> 

②當Intent不指定data屬性時,type屬性纔會起作用,否則android系統會根據data屬性值來分析數據的類型,無須指定type。

③同時指定action,data,屬性那麼android可以根據指定的數據類型來啓動特定的應用程序。(代碼如上)

④在AndroidMinifest.xml中的<activity/>中設置<intent-fliter/>時,雖然category會默認設置,但必須顯性寫出。<category android:name="android.intent.category.DEFAULT"/>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章