Activity中的Intent物件

2021-07-14 14:41:43 字數 4871 閱讀 9350

1.intent主要作用:

intent是一種執行時繫結(run-time binding)機制,它能在程式執行過程中連線兩個不同的元件(兩個不同的activity,可以不再同一應用)。通過intent,你的程式可以向android表達某種請求或者意願,android會根據意願的內容選擇適當的元件來完成請求。
android中的intent有兩大作用。

一:用來啟動其他新的activity。

二:作為傳遞資料和事件的橋梁。傳遞資料時的**有兩種:

第一種是:

intent intent = new intent(currentactivity.this , otheractivity.class);

intent.putextra(「data」 , somedata);

第二種是新建乙個bundle,再把該bundle加入intent,如:

bundle bundle = new bundle() ;

bundle.putstring(「data」 , somedata) ;

intent.putextras(bundle);

extras(bundle);

2.乙個intent物件包含了一組資訊:

component name(元件名稱)

指定intent的目標元件的類名稱。元件名稱是可選的,如果填寫,intent物件會傳送給指定元件名稱的元件,否則也可以通過其他intent資訊定位到適合的元件。元件名稱是個componentname型別的物件。
intent類中也包含乙個初始化componentname的建構函式:

public

intent(context packagecontext, class<?> cls)

//compontname用法

intent intent = new intent();

// 構造的引數為當前context和目標元件的類路徑名

componentname cn = new componentname(helloactivity.this, "com.byread.activity.otheractivity");

intent.setcomponent(cn);

startactivity(intent);

//相當於==>

intent intent = new intent();

intent.setclass(helloactivity.this, otheractivity.class);

startactivity(intent);

action(動作)

指定intent的執行動作,比如呼叫撥打**元件。
//action用法

public

intent(string action)

data(資料)

起到表示資料和資料mime型別的作用。不同的action是和不同的data型別配套的,通過設定data的uri來獲得。
public

intent(string action, uri uri)

//比如調入撥打**的元件

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

// 引數分別為呼叫撥打**元件的action和獲取data資料的uri

intent intent = new intent(intent.action_dial, uri);

startactivity(intent);

category(類別)

被執行動作的附加資訊。例如應用的啟動activity在intent-filter中設定category。(在activitymainfest.xml)

android:name="android.intent.action.main" />

android:name="android.intent.category.launcher" />

intent-filter>

extras(附加資訊)

為處理intent元件提供附加的資訊。可通過putxx()和getxx()方法訪問資訊;也可以通過建立bundle物件,再通過putextras()和getextras()方法來訪問。
flags(標記)

指示android如何啟動目標activity,設定方法為呼叫intent的setflags方法。

常用的flags引數有:

flag_activity_clear_top

flag_activity_new_task

flag_activity_no_history

flag_activity_single_top

intent呼叫常見系統元件**自

// 呼叫瀏覽器 

uri webviewuri = uri.parse("");

intent intent = new intent(intent.action_view, webviewuri);

// 呼叫地圖

uri mapuri = uri.parse("geo:100,100");

intent intent = new intent(intent.action_view, mapuri);

uri playuri = uri.parse("file:///sdcard/test.***");

intent intent = new intent(intent.action_view, playuri);

intent.setdataandtype(playuri, "audio/***");

// 呼叫撥打**

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

intent intent = new intent(intent.action_dial, dialuri);

// 直接撥打**,需要加上許可權"android.permission.call_phone" />

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

intent intent = new intent(intent.action_call, calluri);

// 呼叫發郵件(這裡要事先配置好的系統email,否則是調不出發郵件介面的)

uri emailuri = uri.parse("mailto:[email protected]");

intent intent = new intent(intent.action_sendto, emailuri);

// 直接發郵件

intent intent = new intent(intent.action_send);

string tos = ;

string ccs = ;

intent.putextra(intent.extra_email, tos);

intent.putextra(intent.extra_cc, ccs);

intent.putextra(intent.extra_text, "the email text");

intent.putextra(intent.extra_subject, "subject");

intent.settype("text/plain");

intent.createchooser(intent, "choose email client");

// 發簡訊

intent intent = new intent(intent.action_view);

intent.putextra("sms_body", "the sms text");

intent.settype("vnd.android-dir/mms-sms");

// 直接發簡訊

uri smstouri = uri.parse("smsto:10086");

intent intent = new intent(intent.action_sendto, smstouri);

intent.putextra("sms_body", "the sms text");

// 發彩信

uri mmsuri = uri.parse("content://media/external/images/media/23");

intent intent = new intent(intent.action_send);

intent.putextra("sms_body", "the sms text");

intent.putextra(intent.extra_stream, mmsuri);

intent.settype("image/png");

// 解除安裝應用

intent intent = new intent(intent.action_delete, uninstalluri);

// 安裝應用

intent intent = new intent(intent.action_view);

// 在android market中查詢應用

uri uri = uri.parse("market://search?q=憤怒的小鳥");

intent intent = new intent(intent.action_view, uri);

呼叫Android系統設定中的Intent

開發android軟體時,常常需要開啟系統設定或資訊介面,來設定相關系統項或檢視系統的相關資訊,這時我們就可以使用以下語句來實現 如開啟 無線和網路設定 介面 intent intent new intent componentname comp new componentname com.andr...

Activity中Intent的使用

intent的基本作用 乙個intent物件包含了一組資訊 1.component name 2.action 3.date 4.category 5.extras 6.flags intent 概述 intent是android的核心元件,利用訊息實現應用程式間的互動機制,這種訊息描述了應用中一次...

Activity中的viewPager進入指定介面

activity只能轉跳到指定的activity 如果你想讓目錄的activity中的viewpager進入指定介面,那麼你只需要傳遞幾個引數即可 使用intent轉跳 intent intent new intent activity,目標activity.class 用intent傳遞乙個介面 ...