四大组件之——活动
活动是一种包含用户界面的组件,主要用于和用户交互。
基本用法
- 手动创建活动,继承于Activity,重写onCreate方法。
- 创建和加载布局,res/layout->New->Android XML File.
- 在活动中加载布局:
setContentView(R.layout.layout_name)
- 在AndroidManifest中注册活动,通过activity标签。
- 可以利用Toast将一些短小的消息通知用户,需要设置Toast触发点。
- 在活动中使用Menu,res->new Folder(menu)->New Android XML File,利用item标签添加菜单项。然后在src代码中重写onCreateOptionsMenu()方法,可以将菜单显示出来,重写onOptionsItemSelected()方法可以定义菜单响应事件。
- 销毁当前活动:监听器中调用finish()方法。
活动间的交互
Intent:是各组件之间进行交互的重要方式,可被用于启动活动、启动服务、发送广播等。
- 显式Intent(监听器中new Intent(firstActivity, secondActivity))
- 隐式Intent(AndroidManifest.xml中配置intent-filter,然后new Intent(String actionName))
可以启动另一活动时传递数据,也可以返回数据给上一个活动。
活动的生命周期
Android是利用任务来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈被称为返回栈。
活动的四种状态:
1. 运行状态:活动位于返回栈的栈顶。
2. 暂停状态:活动不处于栈顶但仍然可见(如占据屏幕的部分区域)。
3. 停止状态:活动不处于栈顶并且完全不可见(但依然处于栈中)。
4. 销毁状态:活动从返回栈中移除后。
活动的七种回调方法:
1. onCreate():活动第一次被创建时候调用,在这里完成初始化操作,如加载布局、绑定事件等。
2. onStart():活动由不可见变为可见时调用。在这里对资源进行加载。
3. onResume():活动准备好和用户交互时调用,此时活动一定处于运行状态。
4. onPause():系统准备启动或恢复另一个活动时候调用。
5. onStop():活动完全不可见时调用。在这里对资源进行释放。
6. onDestroy():活动被销毁之前调用,在此完成释放内存的操作。
7. onRestart():活动由停止状态变为运行状态之前调用。
活动的三种生存期:
1. 完整生存期:活动在onCreate()和onDestroy()方法之间所经历的。
2. 可见生存期:活动在onStart()和onStop()方法之间所经历的。在可见生存期内,活动对于用户总是可见的,即便有可能无法和用户进行交互。
3. 前台生存期:活动在onResume()和onPause()方法之间所经历的。活动可以与用户交互。
活动的启动模式
- standard:默认的启动模式,系统不会在乎活动是否已在返回栈中存在,每次启动都会创建该活动的一个新的实例。
- singleTop: 在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。
- singleTask:在启动活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,然后onRestart(),如果没有发现则会创建一个新的活动实例。
- singleInstance:在这种模式下会有一个单独的返回栈管理这个活动,不管是哪个应用程序来访问这个活动,都共用同一个返回栈,也就解决了共享活动实例的问题。