安卓开发入门6-Activity
Activity基础知识
- 我们所看到的所有界面都是Activity
- 用户直接交互的组件
每个Activity都需要在AndroidManifest.xml里注册
1 |
|
- 默认打开的是MAIN
布局和数据组成Activity

- 布局是可以动态设置的,为了开发方便,layout会被索引到R类中
- 通过组件ID获取组件设置各种事件监听和属性
1 |
|
Activity之间的跳转
- 使用intent,参数分别是从哪里到哪里
1 |
|

四种启动模式
安卓使用栈来维护Activity之间的关系,每开始一个新的Activity就会入栈,对于新的Activity如何处理有四种方式,在AndroidManifest.xml中配置。
- stanard(默认)
这种模式是默认的模式,每打开一个新的Activity就会向栈中入栈,并不关心是否已经有相同的Activity在栈中

在AndroidManifest.xml中不配置或者如下配置就是这种模式
1 |
|
要注意的是,并非只有一个栈,而谁启动了Activity,Activity就会加入谁所在的栈中
- singleTop
顶部只有一个,也就是说如果相同的Activity在栈顶直接就会使用而不是新建

- singleTask
如果栈中有要打开的Activity直接使用,而且会将这个Activity之后入栈的Activity全部出栈

- singleInstance
会另外创建一个栈,这种模式下activity会单独占用一个栈,即使已经出现在其他栈中

在代码中可以设置启动模式以及操作栈

实际开发中具体用到哪种启动模式完全取决于需求