intent作為聯絡各activity之間的紐帶,其作用並不僅僅只限於簡單的資料傳遞。通過其自帶的屬性,其實可以方便的完成很多較為複雜的操作。例如直接呼叫撥號功能、直接自動呼叫合適的程式開啟不同型別的檔案等等。諸如此類,都可以通過設定intent屬性來完成。
intent主要有以下四個重要屬性,它們分別為:
action:action屬性的值為乙個字串,代表了系統中已經定義了一系列常用的動作。通過setaction()方法或在清單檔案androidmanifest.xml中設定。預設為:default。
data:data通常是uri格式定義的運算元據。例如:tel:// 。通過setdata()方法設定。
category:category用於指定當前動作(action)被執行的環境。通過addcategory()方法或在清單檔案androidmanifest.xml中設定。預設為:category_default。
extras:extras屬性主要用於傳遞目標元件所需要的額外的資料。通過putextras()方法設定。
四個屬性各自的常用值如下所示:
action:
action_dial:開啟系統預設的撥號程式,如果data中設定了**號碼,則自動在撥號程式中輸入此號碼。
action_call:直接呼叫data中所帶的號碼。
action_answer:接聽來電。
action_send:由使用者指定傳送方式進行資料傳送操作。
action_boot_completed:android系統在啟動完畢後發出帶有此action的廣播(broadcast)。
action_time_changed:android系統的時間發生改變後發出帶有此action的廣播(broadcast)。
category:
category_default:android系統中預設的執行方式,按照普通activity的執行方式執行。
category_home:設定該元件為home activity。
category_preference:設定該元件為preference。
category_launcher:設定該元件為在當前應用程式啟動器中優先順序最高的activity,通常為入口action_main配合使用。
category_browsable:設定該元件可以使用瀏覽器啟動。
category_gadget:設定該元件可以內嵌到另外的activity中。
extras:
extra_subject:存放郵件主題字串。
extra_text:存放郵件內容。
extra_key_event:以keyevent物件方式存放觸發intent的按鍵。
extra_phone_number:存放呼叫action_call時的**號碼。
data:
tel://:號碼資料格式,後跟**號碼。
smsto://:短息資料格式,後跟簡訊接收號碼。
content://:內容資料格式,後跟需要讀取的內容。
file://:檔案資料格式,後跟檔案路徑。
market://search?q=pname:pkgname:市場資料格式,在google market裡搜尋包名為pkgname的應用。
geo://latitude, longitude:經緯資料格式,在地圖上顯示經緯度所指定的位置。
下面來看幾個例子:
//啟動系統瀏覽器
public void onclick(view v)
//啟動相簿
public void onclick(view v)
//傳送簡訊
public void onclick(view v)
//開啟撥號介面
public void onclick(view v)
Intent的Flags屬性的作用
intent intent new intent reorderfour.this,reordertwo.class intent.addflags intent.flag activity reorder to front startactivity intent 1 intent.flag ac...
Intent的七大屬性
1 componentname 元件,指定需要啟動的名稱 可用於啟動activity intent intent new intent componentname cm new componentname this,bactivity.class intent.setcomponent cm sta...
Intent一堆屬性的意義
個人理解。data屬性,就是我們所說的uri當然,這裡是字串型別的。type屬性用來明確指定data屬性所指定資料的型別或mime型別,比如下邊的 intent intent new intent intent.action get content intent.settype vnd.androi...