- Activity的概述
Activity是一个应用组件,用以提供屏幕的交互界面(即用户可见页面)。一个App可以包含多个Activity,app启动在manifest中注册的主activity首先被呈现。
- Activity注册
所有活动都在AndroidManifest.xml中注册后才能生效,首次注册,Android studio会自动在AndroidManifest.xml中注册,活动的注册声明要放在<application>,通过<activity>标签对活动进行注册,android:name指定具体注册哪一个活动,如不在一个包内,可以通过在application上方添加package=“具体包名”来引入。
配置主Activity在<activity>标签内部加入<intent-filter>标签在标签添加
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”>
1. android.intent.category.LAUNCHE
android.intent.category.LAUNCHER的添加与否,直接影响app安装后是否在手机页面上显示app,如果不添加的话,app会安装在手机上,但不会在页面上显示。
- 隐式Intent
相较于显示Intent,隐式Intent含蓄了很多,并不明确指出我们想要启动哪个活动,而是指定更为抽象的action和category
每个Intent只能指定一个action,但却能指定多个category。
Android:scheme 用于指定数据的协议部分,如http
Android:host 用于指定数据的主机名部分,如上例中的www.baidu.com
Android:port 用于指定数据的端口部分
Android:path用于指定主机名和端口之后的部分
Android:mimeType用于指定可以处理的数据类型
- 向下一个活动传递数据
1.发送数据
Intent.putExtra(“extra_data”,data);
第一个参数是键值,第二个是要传递的数据
2.接收数据
Intent intent = getIntent();
String data = intent.getStringExtra(“extra_data”);
- Activity生命周期
活动状态
1)运行状态:当一个activity位于返回栈的栈顶时,activity就处于运行状态。
2)暂停状态:不处于栈顶位置,但仍然可见(如对话框出现后,覆盖后仍可见出现前的activity),只有在内存极低的情况下,系统才会去考虑回收这种activity。
3)停止状态:活动不处于栈顶位置,并且完全不可见的时候,就进入停止状态。系统仍然会为这种活动保存相应的状态和成员变量,当其他地方需要内存时,处于停止状态的活动有可能被系统回收。
4)销毁状态:当一个活动从返回栈中移除后就变成了销毁状态。系统会最倾向于回收处于这种状态的活动,从而保证手机的内存充足。
- onCreate():在Activity创建时调用,通常做一些初始化设置。
- onStart():在Activity即将可见时调用。
- onResume():在Activity获取焦点开始与用户交互时调用。
- onPause():在当前Activity被其他Activity覆盖或锁屏时调用
- onStop():在Activity对用户不可见时调用
- onDestroy():在Activity销毁时调用
- onRestart():在Activity从停止状态再次启动时调用