android Activity基础

一、销毁一个Activity

    两种方式:1,点击返回键。2,调用finish方法.java

二、Intent的调用

    Intent主要用于各组件之间传递数据,例如能够用于启动Acitivity,Service,BroadCastandroid

    Intent的调用,分为显示调用和隐式调用正则表达式

    2.1 显示调用

        具体的调用方式,就是调用Intent(Context packageContext,Class<?> cls)构造函数数据结构

    2.2 隐式调用

        2.2.1 指定一系列的抽象的信息:action,category和data.交由系统去分析这个Intent.并帮咱们找出合适的活动去启动ide

        2.2.2 action

                在AndroidManifest.xml文件中,能够配置多个action.函数

                在Intent中调用Intent(String actionName)构造函数去进行申明,可是只容许申明一个action。url

                action的匹配要求Intent中的action存在且必须和过滤规则中的其中一个action相同,而且注意大小写。spa

        2.2.3 category

                必须定义 <category android:name="android.intent.category.DEFAULT"/>,由于会默认去进行匹配.net

                匹配规则:能够没有,可是设置了,无论有几个,都必须与定义中的一致code

                调用intent对象的addCategory方法,来设置。

        2.2.4 data

                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")

    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);

三、返回数据给上一个Activity

    两个Activity之间数据的传递,可使用intent进行保存数据,同时也会涉及到如下几个方法:

    startActivityForResult(Intent intent,int requestCode);
    setResult(int resultCode,Intent intent);
    onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
    onBackPressed()

    具体的调用顺序,以下图所示:

相关文章
相关标签/搜索