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