天天看點

Activity 之間的通信

Activity通過startActivity啟動另一個Activity,并同過Intent顯示或隐式的方式指定将啟動的Activity,Intent建立的的兩個參數一個是啟動活動的上下文,一個是要啟動的活動。然後就能啟動特定的Acitivity。如果隻有一個參數,action和category比對即可啟動另一個Acitivity。Activity要想将資訊傳回,可通過startActivityForResult傳入請求碼,啟動的Activity可通過setResult把intent傳回。第一個activity在通過重寫onActivityResult進行處理。

Activity 之間的通信

1.需要注意的是,在隐式啟動ac tivity時,如果沒有指定category,則系統預設啟動category為android.intent.category.DEFAULT的activity

是以你也必須在AndroidMenifast中對你要啟動的activity顯示指定<category android:name="android.intent.category.DEFAULT">

隐式啟動時intent至少指定一個action,在xml檔案中可以指定多個action,如果有一個action與intent指定的相同,則action比對成功。注意action比對時區分大小寫!!

category在intent中可以不指定,但如果指定了,xml檔案中必須具有所有intent指定的category,才能比對成功。

2.附上常用的action  http://blog.csdn.net/ithomer/article/details/8242471

3.除了action 和category 還有data

data由兩部分組成:mimeType 和uri    

android.mimeType 用于指定可以處理的資料類型,如是文本,圖檔,視訊等

而uri組成為<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>] 

android.scheme:用于指定資料的協定部分,如不指定uri将無效

android.host:用于指定資料的主機名部分,如不指定uri無效

android.port:用于指定資料的端口部分,scheme和host指定了才指定

android.path:用于指定資料的主機名和端口之後的部分

舉例:http://www.baidu.com:88/search/info(自行對照)-> uri

data比對規則是都比對才能比對成功