亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android學習之Intent中顯示意圖和隱式意圖的用法實例分析

2020-04-11 11:22:24
字體:
來源:轉載
供稿:網友

本文實例講述了Android學習之Intent中顯示意圖和隱式意圖的用法。分享給大家供大家參考,具體如下:

Intent(意圖)主要是解決Android應用的各項組件之間的通訊。

Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,并完成組件的調用。

因此,Intent在這里起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的解耦。

例如,在一個聯系人維護的應用中,當我們在一個聯系人列表屏幕(假設對應的Activity為listActivity)上,點擊某個聯系人后,希望能夠跳出此聯系人的詳細信息屏幕(假設對應的Activity為detailActivity)

為了實現這個目的,listActivity需要構造一個 Intent,這個Intent用于告訴系統,我們要做“查看”動作,此動作對應的查看對象是“某聯系人”,然后調用startActivity (Intent intent),將構造的Intent傳入,系統會根據此Intent中的描述,到ManiFest中找到滿足此Intent要求的Activity,系統會調用找到的 Activity,即為detailActivity,最終傳入Intent,detailActivity則會根據此Intent中的描述,執行相應的操作。

對于intent主要的分類主要包括隱式意圖和顯式意圖。顯式意圖通常主要是啟動本應用中的Activity之間的數據,而隱式意圖則常見于啟動系統中的某些特定的動作,比如打電話,或者是跨應用的Activity啟動。

通常來說:

顯式意圖:調用Intent.setComponent()或Intent.setClass()方法明確指定了組件名的Intent為顯式意圖,顯式意圖明確指定了Intent應該傳遞給哪個組件。
隱式意圖:沒有明確指定組件名的Intent為隱式意圖。 Android系統會根據隱式意圖中設置的動作(action)、類別(category)、數據(URI和數據類型)找到最合適的組件來處理這個意圖。

顯示意圖非常常用也非常簡單一般用于應用程序內之間Activity的相互調用轉換,就不多說了,這里我介紹一下隱式意圖:

簡單概括就是: 意圖包括:Action(動作),Category(附加信息),Data(數據,具體內容),Tpye(類型)等等,舉個例子,說白了意圖就是啟動一個組件的的完整的動作信息,就像打人,打就是Action動作,人就是Data內容,而Type就是類型,打什么人呢?打壞人,type就是壞指的類型,只有這些信息全了才能執行一個完整的意圖,當然還有一些信息,比如scheme就是URI類型的數據的前綴,就像這個例子當中的sms:,還有host主機名,path路徑等。

這里我給大家舉一個調用系統短信的例子,使用隱式意圖啟動系統短信,并給10086發送信息的例子。代碼如下:

/** * 隱式意圖的方法啟動系統短信 * * 簡單概括就是: 意圖包括:Action(動作),Category(附加信息),Data(數據,具體內容),Tpye(類型)等等,舉個例子, * 說白了意圖就是啟動一個組件的的完整的動作信息 * ,就像打人,打就是Action動作,人就是Data內容,而Type就是類型,打什么人呢?打壞人,type就是壞指的類型 * ,只有這些信息全了才能執行一個完整的意圖 * ,當然還有一些信息,比如scheme就是URI類型的數據的前綴,就像這個例子當中的sms:,還有host主機名,path路徑等 * * @param view */ public void startOne(View view) {   Intent intent = new Intent();   intent.setAction("android.intent.action.SENDTO");// 發送信息的動作   intent.addCategory("android.intent.category.DEFAULT");// 附加信息   intent.setData(Uri.parse("sms:10086"));// 具體的數據,發送給10086   startActivity(intent); }

上邊的這個例子是調用系統的東西,下邊我們來看看自定義的隱式意圖是怎么調用的。
首先是先在清單文件中進行注冊,代碼如下:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="net.loonggg.intent"  android:versionCode="1"  android:versionName="1.0" >  <uses-sdk   android:minSdkVersion="8"   android:targetSdkVersion="17" />  <application   android:allowBackup="true"   android:icon="@drawable/ic_launcher"   android:label="@string/app_name"   android:theme="@style/AppTheme" >   <activity    android:name="net.loonggg.intent.MainActivity"    android:label="@string/app_name" >    <intent-filter>     <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" />    </intent-filter>   </activity>   <activity android:name="net.loonggg.intent.SecondActivity" >    <intent-filter>     <!-- 自定義的動作 -->     <action android:name="net.loonggg.xxx" />     <!-- 自定義的scheme和host -->     <data      android:host="www.baidu.com"      android:path="/person"      android:scheme="loonggg" />     <!-- 自定義的類型 -->     <data android:mimeType="person/people" />     <!-- 附加信息 -->     <category android:name="android.intent.category.DEFAULT" />    </intent-filter>   </activity>  </application> </manifest>

第二個Activity里的東西就是我們自定義設置的,就是下邊的這段代碼:

<activity android:name="net.loonggg.intent.SecondActivity" >  <intent-filter>   <!-- 自定義的動作 -->   <action android:name="net.loonggg.xxx" />   <!-- 自定義的scheme和host -->   <data    android:host="www.baidu.com"    android:path="/person"    android:scheme="loonggg" />   <!-- 自定義的類型 -->   <data android:mimeType="person/people" />   <!-- 附加信息 -->   <category android:name="android.intent.category.DEFAULT" />  </intent-filter> </activity>

那在代碼中怎么調用自定義的呢?其實跟調用系統短信一樣,只不過調用系統短信里的那些動作和數據,系統已經給我們配置好了,我們直接用就行,而自定義的就是我們自己寫的,調用方法和系統其實是一樣的。方法如下:

/** * 通過自定義的隱式意圖啟動 * * @param view */ public void startTwo(View view) {   Intent intent = new Intent();   intent.setAction("net.loonggg.xxx");   intent.addCategory("android.intent.category.DEFAULT");   intent.setDataAndType(Uri.parse("loonggg://www.baidu.com/person"),     "person/people");   startActivity(intent); }

特別注意的一點是:intent.setData(data)和intent.setType(type)注意這兩個方法會互相清除,意思就是:如果先設置setData(data)后設置setType(type),那么后設置的setType(type)會把前面setData(data)設置的內容清除掉,而且會報錯,反之一樣,所以如果既要設置類型與數據,那么使用setDataAndType(data,type)這個方法。

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品私拍pans大尺度在线| 热久久免费视频精品| 亚洲视频一区二区三区| 51色欧美片视频在线观看| 亚洲午夜精品视频| 国产精品美女呻吟| 欧美黑人一区二区三区| 久久理论片午夜琪琪电影网| 久久精品国产一区二区电影| 丁香五六月婷婷久久激情| 国产在线98福利播放视频| 国产精品av电影| 欧美性猛交xxxx富婆弯腰| 国产精品av免费在线观看| 日韩欧美有码在线| 亚洲3p在线观看| 亚洲天堂网站在线观看视频| 亚洲视屏在线播放| 一区二区三区高清国产| 欧美极品少妇xxxxⅹ喷水| 日韩视频在线免费观看| 国产精品丝袜久久久久久高清| 欧美午夜片欧美片在线观看| 国产成人aa精品一区在线播放| 国产精品久久久久久久久影视| 精品久久久久久亚洲国产300| 国产精品中文字幕久久久| 九九视频这里只有精品| 成人黄色激情网| 亚洲第一网站免费视频| 欧美性高潮在线| 国产精品视频自在线| 国产精品aaa| 久久精品一偷一偷国产| 国产精品小说在线| 在线电影欧美日韩一区二区私密| 国产精品国产福利国产秒拍| 日韩av免费观影| 国产欧美日韩中文字幕在线| 欧美一级大片在线观看| 亚洲另类欧美自拍| 91久久在线播放| 3344国产精品免费看| 日韩免费在线播放| 欧美极品少妇xxxxⅹ喷水| 欧美日韩精品中文字幕| 色老头一区二区三区在线观看| 国产精品视频精品视频| 国产成人福利网站| 欧美日韩国产区| 久久久91精品国产| 欧美成年人视频网站欧美| 欧美在线视频网站| 欧美激情aaaa| 欧美在线视频免费| 久久激情五月丁香伊人| 在线a欧美视频| 神马国产精品影院av| 成人激情电影一区二区| 国产在线观看精品一区二区三区| 欧美专区国产专区| 黑人与娇小精品av专区| 久久精品久久久久| 国产精品91一区| 3344国产精品免费看| 国产精品亚洲аv天堂网| 欧美日韩国产在线| 国产99久久精品一区二区永久免费| 川上优av一区二区线观看| 国产精品国产亚洲伊人久久| 5566成人精品视频免费| 欧美在线亚洲一区| 国产精品一区电影| 精品中文字幕在线观看| 国产精品久久国产精品99gif| 4438全国成人免费| 国产91|九色| 亚洲第一av网站| 亚洲精品国产美女| 久久综合久久八八| 亚洲精品电影久久久| 精品香蕉一区二区三区| 岛国av一区二区| 欧美尤物巨大精品爽| 久久精品中文字幕免费mv| 亚洲国产精品电影在线观看| 日韩中文有码在线视频| 日韩电影中文字幕av| 亚洲一区中文字幕| 亚洲资源在线看| 成人黄色av免费在线观看| 国产精品成人免费视频| 国产一区二区三区在线观看视频| 欧美亚洲国产日韩2020| 精品久久久久久久大神国产| 亚洲精品日韩av| 黄色一区二区在线观看| 国产在线拍偷自揄拍精品| 精品亚洲一区二区三区在线播放| 亚洲欧美第一页| 最好看的2019年中文视频| 欧美人与性动交| 久久久久久久999精品视频| 亚洲欧美精品在线| 久久精品男人天堂| 久久人人爽人人爽人人片av高清| 国产一区二区日韩精品欧美精品| 国产精品香蕉在线观看| 日韩精品在线观看网站| 国产日韩欧美夫妻视频在线观看| 高清日韩电视剧大全免费播放在线观看| 国产精品老女人精品视频| 川上优av一区二区线观看| 成人国产精品一区| 日韩一级裸体免费视频| 亚洲香蕉伊综合在人在线视看| 最近中文字幕日韩精品| 综合国产在线视频| 日本亚洲精品在线观看| 在线亚洲国产精品网| 在线观看日韩欧美| 日韩精品999| 欧美第一黄网免费网站| 欧美日本国产在线| 国产成人一区二区在线| 国内精品美女av在线播放| 日韩免费av一区二区| 精品久久久av| 日韩精品在线播放| 91高清视频免费| 国产精品欧美一区二区| 在线视频日本亚洲性| 欧美激情一级精品国产| 久久久久久久久久亚洲| 国产成人精品视| 亚洲电影免费观看高清完整版| 亚洲一区久久久| 国产在线播放不卡| 色悠久久久久综合先锋影音下载| 日韩免费在线免费观看| 黑丝美女久久久| 91精品在线看| 久久99国产精品自在自在app| 97av视频在线| 亚洲成色777777女色窝| 亚洲va欧美va在线观看| 中文字幕日本欧美| 中文字幕av一区二区| 国产成人久久精品| 亚洲第一区第二区| 久久久久久美女| 亚洲成人动漫在线播放| 久久久女人电视剧免费播放下载| 国产在线视频2019最新视频| 国产一区二区三区在线视频| 欧美在线中文字幕| 久久久中文字幕| 668精品在线视频| 亚洲一区二区久久久久久久| 欧美电影在线观看| 日韩成人高清在线| 成人黄在线观看| 国内精品免费午夜毛片| 亚洲一区亚洲二区|