Activity组件
Acitivty是一种可以包含用户界面的组件,表示一个屏幕。屏幕间切换需要启动一个新的Activity。
创建
-
定义一个Java类,继承
Activity或AppCompatActivity(后者是前者的子类)重写
OnCreate()方法,必须包含以下语句: -
在AndroidManifest.xml文件中注册
在该文件的
application节点中添加<activity android:name=".MyActivity" .../>节点。其中,
label表示当前页面顶部左上角的标签,如果不设置则默认使用父级application中的label。包含
intent-filter标签的activity为默认主屏幕,允许且仅允许一个activity标签包含intent-filter子标签。
生命周期
分为完整生命周期、可见生命周期和焦点生存周期。
Activity栈:当前运行的activity的集合
Activity状态:
- 运行:栈顶元素,有焦点
- 暂停:非栈顶,部分可见,无焦点
- 停止:非栈顶,不可见
- 销毁:从栈中pop
回调函数:系统自动调用,不可手动调用
onCreate():创建Activity
onStart():运行onPause():暂停onStop():停止onResume():暂停->运行onRestart:停止->运行onDestroy():销毁
跳转
-
启动Activity
-
返回上一个Activity
数据传递
向新Activity中传递单个数据
-
在启动新Activity前封装数据:
-
在新Activity提取数据:
其中,Xxx是被封装的数据的数据类型。
向新Activity中传递打包数据
-
创建Bundle对象并打包数据
-
封装数据
-
在新Activity中提取数据
从新Activity回传数据到旧Activity
-
以子Activity的方式启动新Activity
以便监听数据回传。
请求码是一个整型,用于在存在多个可能打开的子界面中区分具体的子界面
-
在子Activity Finish前回传数据
结果码用于区分子界面返回状态,以在主Acitivity判断下一步的操作。
-
在主Activity重写onActivityResult()方法
三个主要参数:请求码、结果码、intent对象