1. 程式人生 > >Android Intent 隱式

Android Intent 隱式

應該 abcd 其他 html 防止 code .com activity and

隱式intent

xml

<!--在意圖過濾器中-->
<intent-filter>
    <action android:name="android.intent."/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="application/person"/>
    <data android:scheme=""
          android:host="">
</intent-filter>
<!--android:action
category
URI和數據類型 -->
    

一個android(理解為匹配機制)中可以定義0-1個action,0-n個category, 0-1個data

一個intent-filter中可以定義多個action,category,data

MainActivity 中

1.setAction

Intent intent = new Intent();  
intent.setAction("abcdefg");  
startActivity(intent);  

2.構造方法直接設置

Intent intent = new Intent("abcdefg");  
startActivity(intent); 

有幾點需要註意:

1、 這個Activity其他應用程序也可以調用,只要使用這個Action字符串。這樣應用程序之間交互就很容易了,例如手機QQ可以調用QQ空間,可以調用騰訊微博等。

因為如此,為了防止應用程序之間互相影響,一般命名方式是包名+Action名,例如這裏命名"abcdefg"就很不合理了,就應該改成"com.example.app016.MyTest"。

2、 當然,你可以在自己的程序中調用其他程序的Action。 例如可以在自己的應用程序中調用撥號面板:

Intent intent = new Intent(Intent.ACTION_DIAL);  
// 或者Intent intent = new Intent("android.intent.action.DIAL");  
// Intent.ACTION_DIAL是內置常量,值為"android.intent.action.DIAL"  
startActivity(intent);  

參考

Android Intent 隱式