標籤:
Intent分為隱式Intent和顯式Intent:
顯式Intent 也就是說利用Intent對象,明確的傳遞一個活動類而構成的意圖,也就是說我們可以明確的知道下一步的操作。
通常我們利用隱式Intent可以完成一個應用程式對另一個應用程式的調用。
下面我將根據自己的理解簡單的介紹Intent的使用。
顯示Intent,一般我們對它的使用就是
Intent it = new Intent();
it.setClass(xx,xx);
StartActivity(it);這是最簡單的使用,其它不做過多講解。
但是,隱式Intent我們應該怎樣使用呢?
具體的使用如下,建立一個B.Activity,在它的設定檔中我們通過加入<INTENT-FILTER>在其中寫入<Action>以及<Category>:
在同一個Application中,我們使用隱式Intent時,在Mianfest.xml檔案中對需要跳轉的Activity進行配置:
<activity android:name="B">
<intent-filter>
<action android:name="com.example.alertdalog.intent.action.b"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
需要注意的是 我們在配置的時候一定要加入category的屬性(隱式intent至少包含"android.intent.category.DEFAULT"(對應CATEGORY_DEFAULT常量)。因此,活動想要接收隱式intent必須要在intent過濾器中包含"android.intent.category.DEFAULT"。),如果沒有加入,運行時候將會出現force close.
另外我們在對在 action中 name可以命名為任意的字串,但是為了方便起見 我們定義name的時候一般
採用的是包名.intent.action.類名
一般我們採用的是在需要傳遞的A.class中
我們為了方便起見可以建立常量
public static final String Action ="name";
StartActivity(new Intent(類名.Action));
***需要注意的是,通過隱式的Intent可以跨應用啟動Activity;如果一個Activity只允許在一個應用內訪問,而不允許跨應用訪問
我們的配置為 在Activity屬性中加入exported="false"此屬性代表的是,即是否可以匯出,
選擇false代表不可以匯出
Android中Intent的使用