兩種方式:1,點擊返回鍵。2,調用finish方法.java
Intent主要用於各組件之間傳遞數據,例如能夠用於啓動Acitivity,Service,BroadCastandroid
Intent的調用,分爲顯示調用和隱式調用正則表達式
具體的調用方式,就是調用Intent(Context packageContext,Class<?> cls)構造函數數據結構
2.2.1 指定一系列的抽象的信息:action,category和data.交由系統去分析這個Intent.並幫咱們找出合適的活動去啓動ide
在AndroidManifest.xml文件中,能夠配置多個action.函數
在Intent中調用Intent(String actionName)構造函數去進行申明,可是隻容許申明一個action。url
action的匹配要求Intent中的action存在且必須和過濾規則中的其中一個action相同,而且注意大小寫。spa
必須定義 <category android:name="android.intent.category.DEFAULT"/>,由於會默認去進行匹配.net
匹配規則:能夠沒有,可是設置了,無論有幾個,都必須與定義中的一致code
調用intent對象的addCategory方法,來設置。
data由兩部分組成:mimeType和URI.mimeType指媒體類型,好比image/jpeg、audio/mpeg4-generic和video/*等等。
URI的數據結構以下:
<scheme>://<host>:<port>/[<path>|<pathPattern>|<pathPrefix>]
URI例子:cotent://com.test.test:200/folder/subfolder
http://www.baidu.com:8080/search/info
data的模板:
<data android:scheme=""
android:host=""
android:port=""
android:path=""
android:pathPattern=""
android:pathPrefix=""
android:mimeType=""/>
scheme:URI的模式,好比http、file、content等。URI必須指定scheme
host:URI的主機名。必須指定。好比:www.baidu.com
port:URI的端口號。只有當URI中指定scheme和host纔有意義
path:表示路徑信息。表示完整的路徑
pathPattern:表示路徑信息。也表示完整的路徑,可是會包含通配符。*表示0個或者多個字符。因爲正則表達式的規範,
若是真實的字符*須要寫成\\*,\寫成\\\\
pathPrefix:表示路徑前綴信息.
調用intent對象的setDataAndType方法,來設置。
例如:intentObj.setDataAndType(Uri.parse("file://abc"),"image/png")
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent);
Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:10086")); startActivity(intent);
兩個Activity之間數據的傳遞,可使用intent進行保存數據,同時也會涉及到如下幾個方法:
startActivityForResult(Intent intent,int requestCode);
setResult(int resultCode,Intent intent);
onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
onBackPressed()
具體的調用順序,以下圖所示: