intent
顯式意圖:在同專案包下使用顯式會比較好,效率高
隱式意圖:在不同專案下跳轉頁面,使用隱式效率比較好。
intent物件大致包括7大屬性:
第一類:啟動,有componentname(顯式),action(隱式),category(隱式)。
第二類:傳值,有data(隱式),type(隱式),extra(隱式、顯式)。
第三類:啟動模式,有flag。
1.componentname
component本身有元件的意思,我們通過設定component可以啟動其他的activity或者其他應用中的activity。
2.action和category
因為在實際開發中,action大多時候都是和category一起使用的,所以這裡我們將這兩個放在一起來講解。intent中的action我們在使用廣播的時候用的比較多,在activity中,我們可以通過設定action來隱式的啟動乙個activity。
3.data
通過設定data,我們可以執行打**,發簡訊,開發網頁等等操作。
4.type
type的存在,主要是為了對data的型別做進一步的說明,但是一般情況下,只有data屬性為null的時候,type屬性才有效,如果data屬性不為null,系統會自動根據data中的協議來分析data的資料型別,而不會去管type。
5.extra
extra就比較好理解了,我們經常使用它來在activity之間傳遞資料,extra可以傳遞基本型別,string型別以及實現了serializable或者parcelable介面的類。
6.flag
通過設定flag,我們可以設定乙個activity的啟動模式,這個和launchmode基本上是一樣的。
隱式要在 裡面新增
裡面重要的屬性
裡面重要的屬性:mimetype,scheme
intent主要有以下四個重要屬性,在
裡面定義,它們分別為:
action:action屬性的值為乙個字串,它代表了系統中已經定義了一系列常用的動作。通過setaction()方法或在清單檔案androidmanifest.xml中設定。預設為:default。
data:data通常是uri格式定義的運算元據。例如:tel:// 。通過setdata()方法設定。
category:category屬性用於指定當前動作(action)被執行的環境。通過addcategory()方法或在清單檔案androidmanifest.xml中設定。預設為:category_default。
extras:extras屬性主要用於傳遞目標元件所需要的額外的資料。通過putextras()方法設定。
> 四個屬性各自的常用值如下所示: **action:**
action_dial:開啟系統預設的撥號程式,如果data中設定了**號碼,則自動在撥號程式中輸入此號碼。
action_call:直接呼叫data中所帶的號碼。
action_answer:接聽來電。
action_send:由使用者指定傳送方式進行資料傳送操作。
action_boot_completed:android系統在啟動完畢後發出帶有此action的廣播(broadcast)。
action_time_changed:android系統的時間發生改變後發出帶有此action的廣播(broadcast)。
category:
category_default:android系統中預設的執行方式,按照普通activity的執行方式執行。
category_home:設定該元件為home activity。
category_preference:設定該元件為preference。
category_launcher:設定該元件為在當前應用程式啟動器中優先順序最高的activity,通常為入口action_main配合使用。
category_browsable:設定該元件可以使用瀏覽器啟動。
category_gadget:設定該元件可以內嵌到另外的activity中。
extras:
extra_bcc:存放郵件密送人位址的字串陣列。
extra_subject:存放郵件主題字串。
extra_text:存放郵件內容。
extra_key_event:以keyevent物件方式存放觸發intent的按鍵。
extra_phone_number:存放呼叫action_call時的**號碼。
data:
tel://:號碼資料格式,後跟**號碼。
smsto://:短息資料格式,後跟簡訊接收號碼。
content://:內容資料格式,後跟需要讀取的內容。
file://:檔案資料格式,後跟檔案路徑。
market://search?q=pname:pkgname:市場資料格式,在google market裡搜尋包名為pkgname的應用。
geo://latitude,longitude:經緯資料格式,在地圖上顯示經緯度指定的位置。
在intent-filter中指定data屬性的實際目的是:要求接收的intent中的data必須符合intent-filter中指定的data屬性,這樣達到反向限定intent的作用。
intent獲取結果,傳遞
startactivityforresult(intent intent, int requestcode)//引數2 設定請求碼
setresult(int resultcode, intent data)//引數1 對應傳遞過來請求碼
重寫onactivityresult(int requestcode, int resultcode, intent data) //返回result結果,引數2可以用來區分**類別
Intent顯示啟動與隱式啟動
android的acitivity啟動大致有兩種方式 顯式啟動與隱式啟動。下面分別介紹 1.顯示啟動 清單檔案註冊activity activity android name com.example.intentmethod.xianshiactivity android label string ...
Android 顯示Intent和隱式Intent
用於表示這個activity能幹啥 更加精細的表示能幹啥 指明當前想要執行的活動,在不同元件中傳遞資料。1.顯式intent 從activitytest介面跳轉到secondacticvity介面 intent intent newintent activitytest.this secondact...
顯式Intent與隱式Intent的區別
在activity的跳轉中 activity的跳轉需要建立intent物件,通過設定intent物件的引數指定要跳轉activity 通過設定activity的包名和類名實現跳轉,稱為顯式意圖 通過指定動作實現跳轉,稱為隱式意圖 顯式意圖 跳轉至同一專案下的另乙個activity,直接指定該acti...