本系列文章,參考《第一行代碼》,做爲我的筆記java
更多內容:更多精品文章分類 android
上一節中咱們學習了經過隱式 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>
標籤中能夠配置:對象
只有 <data>
標籤中指定的內容和 Intent 中攜帶的數據徹底一致,Activity 才能夠響應。通常在 <data>
標籤中不須要指定這麼多的信息。blog
除了 http 協議之外,還有不少其餘的協議,好比:geo 表示顯示地理位置、tel 表示撥打電話。
展現一下調用系統撥號界面
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
複製代碼