Intent 顯示與隱式

2021-07-15 00:23:00 字數 3248 閱讀 2313

intent

顯式意圖:在同專案包下使用顯式會比較好,效率高

隱式意圖:在不同專案下跳轉頁面,使用隱式效率比較好。

intent物件大致包括7大屬性:

第一類:啟動,有componentname(顯式),action(隱式),category(隱式)。

第二類:傳值,有data(隱式),type(隱式),extra(隱式、顯式)。

第三類:啟動模式,有flag。

1.componentname

component本身有元件的意思,我們通過設定component可以啟動其他的activity或者其他應用中的activity。

2.actioncategory

因為在實際開發中,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...