Activity(活动)

一.概念

二.创建过程

 

三.回调方法

四.常用方法

五.生命周期

  1.四种状态

  2.7种回调方法

六.保存和恢复状态

  1.回调方法

    1>保存状态    onSaveInstanceState(Bundle outState)   

        在暂停和停止之间调用;

        主动关闭Activity时不会调用;

        使用Bundle对象以键值对的形式存储数据。

    2>恢复状态    onRestoreInstanceState(Bundle savedInstanceState)  

        在启动和继续之间调用;

        从Bundle对象中获取数据。

  2.存储数据  

    Bundle:  是一个Map集合;可以存储键值对;可以存基本数据,String。

七.Intent  意图

  1.定义

  2.分类

     1>显式意图

         1°定义

            明确定义目标组件的意图。

         2°构造方式

            Intent(当前Context,目标类.class)。

         3°适应

            操作当前应用的组件时可以使用。

     2>隐式意图

         1°定义

            不明确定义目标组件的意图。

         2°构造方式

            Intent(String  action)。

         3°适应

            操作当前或其他应用的组件时可以使用。

  3.属性

     1>setComponent(ComponentName) 组成

     2>Extra 扩展

     3>Action 动作

     4>Data  数据

     5>Type  类型

     6>Category  类别

     7>Flag  旗标

         addFlags(int);

八.注册和配置

   AndroidManifest.xml

   1.用户权限

      uses-permission android:name=“权限名称";

   2.注册

     1> <activity  name=activity类名>

     2><Intent-filter>

         <action name =“action字符串(系统内置/自定义)”/>;

         <category  name =“字符串(系统内置/自定义)”/>;

         注意事项:

                     <category android:name="android.intent.category.DEFAULT"/> 必须要有;

                     <Intent-filter>可以定义多个;

                     action  Category  可以定义多个。

九.加载,切换和管理

  1.任务栈  TaskStack

    1>栈的特征:后入先出;

    2>在栈顶部的Activity处于显式状态。

  2.打开新的

    1>startActivity(Intent)  普通打开方式

    2>带返回的打开方式

        1°带返回的打开方法

            startActivityForResult(Intent,requestCode):requestCode  请求码  标记请求的标识。

        2°接收返回数据的方法

            onActivityResult(int requestCode, int resultCode, Intent data) :requestCode  请求码  标记请求的标识;resultCode结果码 标记返回结果,一般是表示是否确定返回的信息是否需要处理,特殊字符:RESULT_OK和RESULT_CANCELED;data 携带数据的意图。

        3°目标Activity返回数据

           setResult(int resultCode,Intent data),在关闭之前调用。

  3.加载模式    launchMode

    1>标准模式 standard

        1°默认;

        2°没有实例数量的限制。

    2>任务栈单例模式  singleTask

        1°在任务栈内只能有一个实例;

        2°如果要打开的实例在栈的底部,那么就需要把上面的Activity实例移除。

    3>任务栈顶部单例模式  singleTop

        1°如果实例不在栈的顶部,那就创建新的实例。

    4>全局单例模式  singleInstance

        1°在全局范围内都是单例模式;

        2°让Activity实例独占一个任务栈。

原文地址:https://www.cnblogs.com/arxk/p/5437979.html