亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

咸宁市| 南陵县| 吉林市| 乌拉特中旗| 阿尔山市| 浦城县| 隆林| 元谋县| 隆安县| 永定县| 迁安市| 桃源县| 朔州市| 阜新| 屏山县| 望奎县| 建水县| 佛山市| 调兵山市| 乐都县| 防城港市| 甘孜| 黎城县| 浦江县| 永春县| 桂平市| 沙雅县| 西城区| 乾安县| 铁岭县| 喀喇沁旗| 沁阳市| 武邑县| 若羌县| 女性| 宁南县| 荥阳市| 正镶白旗| 肃宁县| 惠水县| 绥中县|