使用Intent启动组件
android應(yīng)用程序的三大組件——Activities、Services、Broadcast Receiver,通過消息觸發(fā),這個(gè)消息就是Intent,中文又翻譯為"意圖"(我感覺讀著不順暢,還是讀英文)。我們能夠通過Intent去啟動(dòng)三大組件,而且通過Intent攜帶數(shù)據(jù)到其它組件中。本文來(lái)看一下怎么使用Intent啟動(dòng)組件,以及Intent的過濾規(guī)則。
Intent對(duì)象
首先來(lái)看Intent對(duì)象中包括的成員。
private String mAction; //動(dòng)作 private Uri mData; //數(shù)據(jù) private String mType; private String mPackage; //包名 private ComponentName mComponent; //組件名 包括程序包名+類名,以及應(yīng)用包名 private int mFlags; //標(biāo)志 private HashSet<String> mCategories; //種類 private Bundle mExtras; //附加信息 private Rect mSourceBounds; private Intent mSelector; private ClipData mClipData;看Intent的源代碼,主要包括以上成員。
Intent解析
Intent解析有兩種方式:顯式解析和隱式解析。
顯式解析。我們直接傳組件進(jìn)入。打開這個(gè)指定的組件,比較簡(jiǎn)單,通常應(yīng)用程序內(nèi)使用。
比方我們創(chuàng)建一個(gè)顯式的Intent:
隱式解析,沒有指定詳細(xì)的組件,通過規(guī)則去匹配組件。通經(jīng)常使用于多個(gè)程序之間的互相調(diào)用比較多。我們使用隱式解析式。action、data(包含URI和數(shù)據(jù)類型)、category都必須有。比方我們啟動(dòng)瀏覽器去打開一個(gè)網(wǎng)址,intent能夠這樣創(chuàng)建:
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://blog.isming.me"));上面沒有填寫category,創(chuàng)建Intent的時(shí)候會(huì)自己主動(dòng)填寫為default。
等待補(bǔ)充吧。
亂扯
好吧,本來(lái)像。會(huì)寫的非常長(zhǎng)的,可是真正想寫的時(shí)候,發(fā)現(xiàn)就這么簡(jiǎn)單。也沒什么好寫的。下次多看看源代碼。再看有沒有要補(bǔ)充的。就醬紫了!
原文地址:http://blog.isming.me/blog/2014/06/15/use-intent-start-component/。歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處。
版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的使用Intent启动组件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS安装vim及基本配置
- 下一篇: HashMap多线程并发问题分析