場景: java
本身的應用內,顯式意圖 效率高 android
激活其餘應用或但願本身被別人激活,使用隱式意圖或聲明Action app
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pas.intenttest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.pas.intenttest.MainActivity" android:label="@string/app_name" android:icon="@drawable/ic_launcher" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.pas.intenttest.SecActivity" android:label="@string/title_activity_sec" > <!-- 自定義intent動做Action --> <intent-filter > <action android:name="com.pas.intenttest.sec"/> <category android:name="android.intent.category.DEFAULT" /> <!-- 接受的數據描述 表示數據格式開頭--> <!-- mimeType表示數據類型 若沒有標準格式 通常寫爲vnd.android.cursor.item/xxx --> <data android:scheme="pas" android:mimeType="vnd.android.cursor.item/pas"></data> </intent-filter> </activity> </application> </manifest>
public void click2(View v) { //隱式意圖 //描述動做的行爲 Intent intent=new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); } public void click3(View v) { //隱式意圖 //描述動做的行爲 //Category用於提供一些額外的環境參數 //參數必須與配置中相符合 不可短缺 不然形成找不到Activity Intent intent=new Intent(); intent.setAction("com.pas.intenttest.sec"); intent.setDataAndType(Uri.parse("pas:asdwd"), "vnd.android.cursor.item/pas"); intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent); } public void click4(View v) { //隱式意圖 Intent intent=new Intent(); intent.setAction("android.intent.action.SEND"); intent.setData(Uri.parse("mms:110")); intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent); }