Android 顯示Intent和隱式Intent的差別

在Android開發過程中,Intent又被細分顯示Intent和隱式Intent,兩者的區別在哪呢?

顯示Intent
顯式Intent的意思是指可以直接指定需要打開的Activity對應的Java的類
用代碼表示如下:

Intent intent = new Intent(this, FirstActivity.class);
startActivity(intent);

或者另一種寫法

Intent intent = new Intent;
intent.setClass(this,  FirstActivity.class);  
startActivity(intent);

這兩種寫法效果都是一樣的,從一個Activity跳到另一個指定的Activity;

隱式Intent
隱式Intent指的是不明確指定啓動哪個Activity,而是通過在AndroidManifest.xml文件中設置Action、Data、Category,讓系統來篩選出合適的Activity。篩選是根據所有的來篩選。
例如:
下面以Action爲例:
首先要在AndroidManifest.xml文件中,被調用的Activity要有一個帶有並且包含的Activity,設定它能處理的Intent,並且category設爲"android.intent.category.DEFAULT"。action的name是一個字符串,可以自定義,例如這裏設成爲"demo":

<activity  
    android:name="com.example.app.FirstActivity">  
    <intent-filter>  
        <action android:name="demo"/>  
        <category android:name="android.intent.category.DEFAULT"/>  
    </intent-filter>  
</activity>  

最後在主函數裏面setAction就可以實現了

Intent intent = new Intent();  
intent.setAction("demo");  
startActivity(intent);  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章