Intentについて


連絡先の2つの設定を表示します.

  
  
  
  
  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のプロパティ設定:
1コードではactionは1つだけ機能し,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のを設定した場合、categoryはデフォルト設定になりますが、明示的に書く必要があります.