從0系統學Android-2.5更多隱式Intent用法

本系列文章,參考《第一行代碼》,做爲我的筆記java

更多內容:更多精品文章分類 android

聲明

從0系統學Android-2.5更多隱式Intent用法

上一節中咱們學習了經過隱式 Intent 來啓動 Activity。實際上隱式 Intent 還有更多的內容。瀏覽器

使用隱式 Intent 咱們不只能夠啓動本身程序內符合要求的Activity 還能夠啓動其餘程序中符合要求的 Activity,這也使得 Android 中多個應用程序之間的功能共享成爲可能。學習

好比:咱們須要在咱們的程序中展現一個網頁,則只須要調用系統瀏覽器來打開這個網頁就能夠了。spa

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://blog.csdn.net/sydMobile/article/details/78890731"));
startActivity(intent);
複製代碼

解釋一下:Intent.ACTION_VIEW 這是一個 Android 系統的內置的 action。經過 Uri.parse() 方法,將一個網址字符串解析成一個 Uri 對象。給 setData 方法。Uri 對象主要用於指定當前 Intent 正在操做的數據。.net

上面的代碼中,咱們可能對 setData() 部分感到陌生。這個方法並不複雜,就是接收一個 Uri 對象。主要用於指定當前的 Intent 正在操做的數據,而這些數據一般是經過字符串的形式傳入到 Uri.parse() 方法中產生。code

與之對應,咱們能夠在 <intent-filter> 標籤中再配置一個 <data> 標籤。用於更精確地響應當前的 Activity 可以響應什麼類型的數據。cdn

<intent> 標籤中能夠配置:對象

  • android:scheme 用於指定數據的協議部分。好比 http
  • android:host 指定主機部分 好比:www.baid.com
  • android:path 指定主機和端口以後的部分。如一段網址跟在域名後面的內容
  • android:mimeType 指定能夠處理的數據類型,可使用通配符來指定

只有 <data> 標籤中指定的內容和 Intent 中攜帶的數據徹底一致,Activity 才能夠響應。通常在 <data> 標籤中不須要指定這麼多的信息。blog

除了 http 協議之外,還有不少其餘的協議,好比:geo 表示顯示地理位置、tel 表示撥打電話。

展現一下調用系統撥號界面

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
複製代碼

相關文章
相關標籤/搜索