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傳遞乙個介面 ...