Intent
顯示意圖
btn_goNext.setOclickListener{
val IntentGoNext = Intent(this,SecendActivity::class.java)
//發(fā)送意圖
startActivity(IntentGoNext)
}
隱式意圖
//AndroidManifest.xml配置
<intent-filter>
<action android:name="自己的 廣播頻道/動(dòng)作 | 系統(tǒng)的"></action>
<category android:name="自己額外附加信息 | 系統(tǒng)的" />
</intent-filter>
1.action 和 category 決定了這個(gè)頁面可以響應(yīng)哪些意圖
2.只有意圖的 action 和 category 與頁面的 action 和 category 完全匹配才能做出響應(yīng)
3.當(dāng) category 值為 android.intent.category.DEFAULT時(shí),我們創(chuàng)建意圖時(shí)就不用手動(dòng)指定 category . 因?yàn)檫@個(gè)在創(chuàng)建意圖的時(shí)候會(huì)自動(dòng)添加
btn_goNext.setOclickListener{
val IntentGoNext = Intent("my動(dòng)作")
IntentGoNext.addcategory("my附加信息")
//發(fā)送意圖
startActivity(IntentGoNext)
}
//此時(shí)所有包含<my動(dòng)作>|<my附加信息>的activity都會(huì)被作為選擇
隱式意圖擴(kuò)展
隱式意圖使得我們可以調(diào)用其他app的activity
//開啟瀏覽器訪問百度
btn_goNext.setOclickListener{
val IntentGoNext = Intent(Intent.ACTIION_VIEW)//內(nèi)置動(dòng)作
IntentGoNext.data = Uri.parse("https://www.baidu.com")
//發(fā)送意圖
startActivity(IntentGoNext)
}
//開啟電話應(yīng)用
btn_goNext.setOclickListener{
val IntentGoNext = Intent(Intent.ACTIION_DIAL)//內(nèi)置動(dòng)作
IntentGoNext.data = Uri.parse("tel:10086")//tel協(xié)議
//發(fā)送意圖
startActivity(IntentGoNext)
}
//頁面響應(yīng)瀏覽器意圖
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="https"/>//響應(yīng)所有https協(xié)議的意圖
</intent-filter>
//頁面響應(yīng)電話意圖
<intent-filter>
<action android:name="android.intent.action.DALL"/>
<data android:scheme="tel"/>//響應(yīng)所有tel協(xié)議的意圖
</intent-filter>
Intent.data
Intent.data接受一個(gè)Uri對(duì)象 用來指定意圖正在操作的數(shù)據(jù)
URI (統(tǒng)一資源標(biāo)志符)
URI格式 : scheme://host:port/path
可以在intent-filter里面的data標(biāo)簽篩選意圖
data標(biāo)簽屬性
● android:scheme。用于指定數(shù)據(jù)的協(xié)議部分,如上例中的https、tel部分
● android:host。用于指定數(shù)據(jù)的主機(jī)名部分,如上例中的www.baidu.com部分。
● android:port。用于指定數(shù)據(jù)的端口部分,一般緊隨在主機(jī)名之后。
● android:path。用于指定主機(jī)名和端口之后的部分,如一段網(wǎng)址中跟在域名之后的內(nèi)容。
Intent.type
MIME Type指數(shù)據(jù)的類型,例如:video/mp4,video/avi
可以在intent-filter里面的data標(biāo)簽篩選意圖
data標(biāo)簽屬性
● android:mimeType。用于指定可以處理的數(shù)據(jù)類型,允許使用通配符的方式進(jìn)行指定。