1、销毁一个Activity
两种方式:1,点击返回键。2,调用finish方法.
2、Intent的调用
Intent主要用于各组件之间传递数据,例如可以用于启动Acitivity,Service,BroadCast
Intent的调用,分为显示调用和隐式调用
2.1 显示调用
具体的调用方式,就是调用Intent(Context packageContext,Class> cls)构造函数
2.2 隐式调用
2.2.1 指定一系列的抽象的信息:action,category和data.交由系统去分析这个Intent.并帮我们找出合适的活动去启动
2.2.2 action
在AndroidManifest.xml文件中,可以配置多个action.
在Intent中调用Intent(String actionName)构造函数去进行申明,但是只允许申明一个action。
action的匹配要求Intent中的action存在且必须和过滤规则中的其中一个action相同,并且注意大小写。
2.2.3 category
必须定义 ,因为会默认去进行匹配
匹配规则:可以没有,但是设置了,不管有几个,都必须与定义中的一致
调用intent对象的addCategory方法,来设置。
2.2.4 data
data由两部分组成:mimeType和URI.mimeType指媒体类型,比如image/jpeg、audio/mpeg4-generic和video/*等等。
URI的数据结构如下:
://:/[||]
URI例子:cotent://com.test.test:200/folder/subfolder
http://www.baidu.com:8080/search/info
data的模板:
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")
2.3 Intent妙用
2.3.1 打开url
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
2.3.2 拨打电话
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
3、返回数据给上一个Activity
两个Activity之间数据的传递,可以使用intent进行保存数据,同时也会涉及到以下几个方法:
startActivityForResult(Intent intent,int requestCode);
setResult(int resultCode,Intent intent);
onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
onBackPressed()
具体的调用顺序,如下图所示: