Android应用程序——四大组件之Activity
2017-06-12 18:55
429 查看
Activity是Android应用程序的四大组件之一,它负责管理Android应用程序的用户界面。一个应用程序一般会包含若干个Activity,每一个Activity组件负责一个用户界面的展现。Activity是通过调用setContentView()方法来显示指定组件的。该方法既可以接收View对象为参数,也可以接收布局文件对应的资源id为参数。
(1).Activity生命周期的三种状态
生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有相应的生命周期,Activity的生命周期中分为三种状态。
运行状态:当Activity在屏幕的最前端时,它是可见的、有焦点的。
暂停状态:Activity对用户来说仍然是可见的,但它不再拥有焦点。
停止状态:当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。然而这些对用户来说都是不可见的。
Activity从一种状态转变到另一种状态时会触发一些事件,执行一些回调方法来通知状态的变化。
当手机横竖屏切换时,Activity会销毁重建(模拟器中横竖屏切换可以使用ctrl+F11)。
如果不希望在横竖屏切换时Activity被销毁重建,可以在AndroidManifest.xml文件中设置Activity的android:configChanges的属性,具体代码如下所示:
如果希望某一个界面一直处于竖屏或者横屏状态,可以在清单文件中通过设置Activity的属性来完成,具体代码如下所示:
(2).Activity的四种启动模式
先加入任务栈中的Activity会处于容器下面,后加入的处于容器上面,而从任务栈中取出Activity是从最顶端先取出,最后取出的是最底端的Activity。
Activity的启动模式有四种,分别是standard、singleTop、singleTask和singleInstance:
(1).在standard模式下,每当启动一个新的Activity,它就会进入任务栈,并处于栈顶的位置,对于使用standard模式的Activity,每次启动都会创建一个新的实例;
(2).singleTop启动模式与standard类似,不同的是,当启动的Activity已经位于栈顶时,则直接使用它,不再创建新的实例;
(3).当Activity的启动模式为singleTask时,每次启动该Activity时,系统首先会检查栈中是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例;
(4).singleInstance模式加载Activity时,只会创建一个Activity实例,并且会使用一个全新的任务栈来装载该Activity实例。
(1).Activity生命周期的三种状态
生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有相应的生命周期,Activity的生命周期中分为三种状态。
运行状态:当Activity在屏幕的最前端时,它是可见的、有焦点的。
暂停状态:Activity对用户来说仍然是可见的,但它不再拥有焦点。
停止状态:当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。然而这些对用户来说都是不可见的。
Activity从一种状态转变到另一种状态时会触发一些事件,执行一些回调方法来通知状态的变化。
当手机横竖屏切换时,Activity会销毁重建(模拟器中横竖屏切换可以使用ctrl+F11)。
如果不希望在横竖屏切换时Activity被销毁重建,可以在AndroidManifest.xml文件中设置Activity的android:configChanges的属性,具体代码如下所示:
android:configChanges="orientation|keyboardHidden|screenSize“
如果希望某一个界面一直处于竖屏或者横屏状态,可以在清单文件中通过设置Activity的属性来完成,具体代码如下所示:
竖屏:android: screenOrientation="portrait" 横屏:android: screenOrientation="landscape"
(2).Activity的四种启动模式
先加入任务栈中的Activity会处于容器下面,后加入的处于容器上面,而从任务栈中取出Activity是从最顶端先取出,最后取出的是最底端的Activity。
Activity的启动模式有四种,分别是standard、singleTop、singleTask和singleInstance:
(1).在standard模式下,每当启动一个新的Activity,它就会进入任务栈,并处于栈顶的位置,对于使用standard模式的Activity,每次启动都会创建一个新的实例;
(2).singleTop启动模式与standard类似,不同的是,当启动的Activity已经位于栈顶时,则直接使用它,不再创建新的实例;
(3).当Activity的启动模式为singleTask时,每次启动该Activity时,系统首先会检查栈中是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈,如果没有发现则创建一个新的实例;
(4).singleInstance模式加载Activity时,只会创建一个Activity实例,并且会使用一个全新的任务栈来装载该Activity实例。
相关文章推荐
- Android应用程序四大组件之Activity(二)
- Android应用程序四大组件之Activity(一)
- 学Android开发不可不知的Android应用程序四大组件
- 解开Android应用程序组件Activity的"singleTask"之谜
- Android starting 5---四大组件之一---Activity入门(cont.)
- Android应用程序框架四大重要的组件
- Android应用程序四大组件
- Android应用程序四大组件
- 解开Android应用程序组件Activity的"singleTask"之谜
- Android的四大组件之三--Activity(4)----->Activity的启动方式和相关参数
- Android 四大组件之(1)Activity与Intent通信机制
- Android应用程序的基本组件之Activity
- 解开Android应用程序组件Activity的"singleTask"之谜(1)
- 解开Android应用程序组件Activity的"singleTask"之谜(3)
- Android应用程序四大组件
- Android应用程序四大组件
- 解开Android应用程序组件Activity的"singleTask"之谜
- Android四大组件Activity、service、Content Provider、BroadCast Receiver
- 01 Android应用的构成 四大组件 Activity, Intent Receiver , Service , Content Provider
- 解开Android应用程序组件Activity的singleTask之谜