91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android Intent詳解

發布時間:2020-04-06 17:00:21 來源:網絡 閱讀:637 作者:恐龍ID 欄目:移動開發

    (一)概念:Intent簡單來說就是啟動或切換Activity, Service或Broadcast三大組件的。Intent使應用程序代碼在運行時動態綁定成為可能,大大降低了不同代碼之間的耦合性。Intent最常用的方法是用來啟動一個Activity。Intent封裝了一系列他要執行的動作屬性,常見的有Action,Data,Type, Category, Extras。

    a: Action, Action屬性要完成的只是一個抽象的動作,這個動作具體由哪個組件(Activity或BroadcaseReceiver)來完成,Action這個屬性本身并不管。比如:Android提供的標準Action:Intent.ACTION_VIEW,他只表示一個抽象的查看操作,但具體查看什么,啟動哪個Activity他并不知道,這取決于Activity的<intent-filter../>配置,只要Activity的<intent-filter../>配置中包含了ACTION_VIEW他就有可能被啟動, 可以調用Intent的setAction()方法為Intent設置Action屬性的值。

    b: Data/Type, Dta屬性是用于向Action屬性提供操作的數據,Data屬性接收一個Uri對象,一個Uri對象通常通過如下形式的字符串來表示:

content://com.android.contacts/contacts/1
tel:123

     而Uri字符串總是滿足如下的格式

scheme://host:port/path

     Type屬性是用于指定Data屬性向Action提供的數據的格式,即指定該Data屬性所指定的Uri所對應的MIME類型,這種MIME類型可以是任意自定義的MIME類型,只要符合abc/xyz格式的字符串即可。

    Data屬性與Type屬性的關系比較微妙,這兩個屬性會互相覆蓋,比如:

-->如果為Intent先設置Data屬性后設置Type屬性,那么Data屬性將會被Type屬性所覆蓋。
-->如果為Intent先設置Type屬性后設置Data屬性,那么Type屬性則會被Data屬性所覆蓋。
-->要希望二者都同時存在,則應該調用Intent的setDataAndType()方法。

    c: Extra,Extra屬性相信您應該使用過許多遍了,他用于用于在多個Action之間進行數據的交換(Activity切換時的數據傳遞intent.putExtra(...)),該屬性值應該是一個Bundle對象,Bundle對象類似于一個Map對象可以存入多個key-value鍵值對。

    d: Category,  Category屬性是用于向Intent提供附加信息的屬性,可以是任意的字符串,如果一個Activity中同時設置了Action與Category那么,只有當二者同時滿足Activity才會被響應,可通過Intent的addCategory()方法來設置。

    說明:一個Intent對象只可以有一個Action但可以設置多個Category屬性,如果不指定Category屬性,系統會默認初始化一個Category屬性,其值為Intent.CATEGORY.DEFAULT常亮(常亮值為android.intent.category.DEFAULT組件)


    (二)顯式Intent與隱式Intent。

    • 顯式Intent通過指定Intent組件名稱來實現的,一般使用在知道目標組件名稱的前提下,指定需要轉向到的Activity,明確指定了要激活的組件,一般使用在應用程序內部。

    • 隱式Intent:通過Intent Filter來實現的,它一般用在沒有明確指出目標組件名稱的前提下。Android系統會根據隱式意圖中設置的動作(action)、類別(category)、數據(URI和數據類型)找到最合適的組件來處理這個意圖。一般是用于在不同應用程序之間

    對比:顯式Intent效率更高,因為系統可以直接精準的定位到需要激活的組件,缺點是耦合度高,例如:通過這種方法調用一些系統組件,很容易因為版本的更新,包名,類名,包結構的變化而導致程序崩潰;隱式Intent相對于效率較底下,因為每次意圖執行的時候系統都會搜索所有的intentfilter,來查看是否有匹配的內容,所以效率更底下。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宾川县| 同仁县| 青州市| 新竹市| 开化县| 碌曲县| 桐柏县| 罗源县| 竹北市| 柳江县| 丰镇市| 重庆市| 桐城市| 青铜峡市| 略阳县| 诸城市| 岳池县| 卢龙县| 东海县| 海宁市| 麟游县| 琼海市| 旬阳县| 桦川县| 基隆市| 兴海县| 连平县| 扶风县| 安丘市| 云霄县| 平凉市| 章丘市| 资中县| 遂平县| 天水市| 潼关县| 闻喜县| 兴宁市| 彩票| 安义县| 尖扎县|