两种方式: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()
具体的调用顺序,以下图所示: