Android開發:顯式/隱式Intent意圖跳轉Activity總結



顯式跳轉 java

 

在已知包名和類名的狀況下經常使用的跳轉方法: android


web

 

nt mIntent = new Intent(); 瀏覽器

mIn spa

Int 對象

etent.setClassName("com.android.settings","com.android.settings.Settings"); ci

mContext.startActivity(mIntent); it

咱們也常這麼用: io

 

 

y.class); class

startActivity(intent);

這是跳轉到當前應用的某個Activity

Intent intent = new Intent(mContext, XXActivi
t
相信你們都十分熟悉,今天主要講的是如何使用隱式intent意圖跳轉

隱式跳轉

 

1、隱式跳轉之Action跳轉

 

假定有一個Activity在清單中是這樣的聲明的:

 

omer_action_here"

 </intent-filter>

 </ac

<activity android:name=".ActionActivity"; 

 <intent-filter

 action android:name="cus
ttivity>

那麼咱們就可使用如下代碼進行跳轉到上面這個Activity中:

 

//建立一個隱式的 Intent 對象:Action 動做

 Intent intent = new Intent();

tegory跳轉

 

定有一個Activity在清單中是這樣


 //設置 Intent 的動做爲清單中指定的action

 intent.setAction("customer_action_here");

 startActivity(intent);

2、隱式跳轉之C
a
聲明的:

  

<activity android:name=".CategoryActivity" >

 <intent-filter>

 <action android:name="customer_action_here" />

隱式的 Intent 對象:Category 類別

 Intent intent = new Inte

 <category android:name="customer_category_here" />

 </intent-filter>

 </activity>

咱們可使用以下代碼進行跳轉到以上Activity

  

//建立一
nt();

 intent.setAction("customer_action_here");

 //添加與清單中相同的自定義category

 intent.addCategory("customer_category_here");

 startActivity(intent);

3、隱式跳轉之Data跳轉

 

d:scheme="content"

假定有一個Activity是這樣定義的:

  

< activity android:name=".DataActivity">

 < intent-filter>

 < category android:name="android.intent.category.DEFAULT" />

 < data

 andro
i android:host="com.example.intentdemo"

 android:port="8080"

 android:pathPattern=".*pdf"

 android:mimeType="text/plain"/>

 < /intent-filter>

 < /activity>

咱們可使用以下代碼進行跳轉:

  

使用,不可共用 

 //單獨以 setData 方法設置 UR

//建立一個隱式的 Intent 對象,方法四:Date 數據

 Intent intent = new Intent();

 Uri uri = Uri.parse("content://com.example.intentdemo8080/abc.pdf");

 //注:setDatasetDataAndTypesetType 這三種方法只能單
I

 //intent.setData(uri);

 //單獨以 seType 方法設置 Type

 //intent.setType("text/plain");

 //上面分步驟設置是錯誤的,要麼以 setDataAndType 方法設置 URI mime type

 intent.setDataAndType(uri, "text/plain");

 startActivity(intent);

startActivity(intent);

4.2 調用地圖

 

  

Uri uri = Ur

//打開地圖查看經緯度

 

 i.

清單中的daport及如下屬性時可選的,沒有必要必定添加,可是添加了port及如下屬性的話,java代碼中的Uri中要作相應的匹配。

4、隱式跳轉之調用系統應用

 

4.1 使用瀏覽器瀏覽網頁

 

  

//web瀏覽器

 Uri uri= Uri.parse("http://www.baidu.com");

 Intent intent = new Intent(Intent.ACTION_VIEW, uri);


 parse("geo:38.899533,-77.036476");

 Intent intent = new Intent(Intent.ACTION_VIEW, uri);

 startActivity(intent);

4.3 調用電話撥號(不須要撥號權限)

 

  

Uri uri = Uri.parse("tel:10086");

 Intent intent = new Intent(Intent.ACTION_DIAL, uri);//注意區別於下面4.4action

 startActivity(intent);

 "這裏寫短信內容"); 

 inte

4.4 調用電話直接撥號(須要撥號權限)

 

  

Uri uri = Uri.parse("tel:15980665805");

 Intent intent = new Intent(Intent.ACTION_CALL, uri);//注意區別於上面4.3aciton

 startActivity(intent);

4.5 調用短信程序(無需發送短信權限,接收者自填)

 

  

Intent intent = new Intent(Intent.ACTION_VIEW); 

 intent.putExtra("sms_body"
,nt.setType("vnd.android-dir/mms-sms"); 

 startActivity(intent);

4.6 調用短信程序(無需發送短信權限)

 

  

Uri uri = Uri.parse("smsto:10086");//指定接收者

 Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

 intent.putExtra("sms_body", "你這個黑心運營商");

 startActivity(intent);

4.7 調用郵件程序

 

  

.ACTION_VIEW);

 //Uri uri = Uri.parse("file:///sdc

Intent intent = new Intent(Intent.ACTION_SENDTO); 

 intent.setData(Uri.parse("mailto:xxx@gmail.com")); 

 intent.putExtra(Intent.EXTRA_SUBJECT, "這是標題"); 

 intent.putExtra(Intent.EXTRA_TEXT, "這是內容"); 

 startActivity(intent);

4.8 調用媒體播放器

 

  

Intent intent = new Intent(Inten
tard/zhy.mp3");

 Uri uri = Uri.parse("file:///sdcard/a.mp3");

 intent.setDataAndType(uri, "audio/mp3");

 startActivity(intent);

4.9 調用搜索

 

  

Intent intent = new Intent(); 

 intent.setAction(Intent.ACTION_WEB_SEARCH); 

 intent.putExtra(SearchManager.QUERY, "android"); 

 startActivity(intent);

總結

 

相信你們通過上面的介紹,已經對Intent跳轉有了一個比較成熟的理解,Intent是組件之間的紐帶,使用它可讓系統替咱們完成不少工做,不須要咱們來指定完成工做的程序。實際上,咱們會發現,調用系統程序使用液無非是隱式跳轉,只不過使用的是系統內置的一些ActionUriData等信息而已。但願對你們有所幫助.

相關文章
相關標籤/搜索