你的位置:首页 > 操作系统

[操作系统]【原创】Activity 概念介绍(大全)


【面向人员】:立志于安卓开发的所有人员,做到真正的从零基础起步;
【教程说明】:本教程在内容上保证原创、简洁、详细,在附件链接上保证可用、最新、完整;
【回帖说明】:教程有不清晰的地方,请及时回帖互动,楼主会第一时间更新帖子,谨以此开源、分享、共进。

1、Activity 是什么?

Activity 程序是 Android 程序的基本组成单元,是Android 应用层开发的四大组件之一。

2、Activity 作用是什么?

从通俗角度上来讲:Activity 是用户与 Android 应用程序交互的接口,通过这个组件中可以放置各种控件。
从设计层面上来讲:功能类似于Mvc设计模式中的Controller控制层,在Android中,通过Activity选择要显示的View,从View中获取数据然后传给Model层进行处理,最后显示出来。

3、Activity 的四种状态是什么?

Active/Runing:手机当前显示的屏幕界面,也就是Activity 可见并可交互的激活状态;
Paused: 当被其它Activity 覆盖时的状态,依然保持连接、可见,但是不可交互状态;
Stoped: 当被其它Activity覆盖时的状态,依然保持连接,不可见不可交互的状态;
Killed: Activity 被系统杀死回收,,与系统断开连接,不可见不可交互的状态。
更多信息:原帖转载地址

4、什么是 Activity栈

Android 通过 Activity 栈来管理 Activity 的,Activity 实例的状态决定它在栈中的位置,手机当前显示的屏幕界面总是在栈的顶端,当顶端的界面被销毁或者异常时,处于栈第2层的Activity将被激活,上浮到栈顶,也就是第二层的Activity将要上升到手机当前屏幕界面。反之,如果启动新的Activity入栈的时候,原顶端Activity会被压入栈的第二层。

5、Activity 的生命周期有哪些?

onCreate: 创建界面调用,进行初始化数据工作;
onStart: 一般在onCreate方法之后被调用,进入到可见不可交互的状态,;
onResume: Pause和Active状态互转的时候调用,进入用户可交互的的状态;
onPause: 暂停时调用,进行可见不可交互状态,系统会停止Activity一些工作;
onDestroy: 结束或者kill时调用,一般进行释放资源、清理内存等工作;
onStop: 被其它Activity覆盖时调用,变得不可见不可交互状态。

6、Activity 加载模式有哪些?

standard:就是intent(为组件提供交流通讯描述的相关信息)将发送给新的实例,所以每次跳转都会生成新的activity;

singleTop:也是发送新的实例,但不同standard在于请求的Activity正好位于栈顶时,不会构造新的实例;

singleTask:当intent到来需要创建singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它;

singleInstance:singleInstance模式就是将该Activity单独放入一个栈中,这样这个栈中只有这一个Activity,不同应用的intent都由这个Activity接收和展示,这样就做到了共享。

7、Activity 启动顺序是怎样的?

7.1、一个Activity的启动顺序:onCreate()
     -> onStart()
     -> onResume()

7.2、当另一个Activity启动时: 第一个Activity onPause()
     -> 第二个Activity onCreate()
     -> onStart()
     -> onResume()
     -> 第一个Activity onStop()

7.3、当返回到第一个Activity时:第二个Activity onPause()
     -> 第一个Activity onRestart()
     -> onStart()
     -> onResume()
     ->第二个Activity onStop()
     -> onDestroy()

7.4、一个Activity的销毁顺序:

     7.4.1、onPause() -> <Process Killed>

     7.4.2、onPause() -> onStop() -> <Process Killed>

     7.4.3、onPause() -> onStop() -> onDestroy()

8、其它说明:本节是概念性介绍,了解即可,为后续安卓开发打点小基础。

9、原帖转自:http://www.try8.cn/thread-513-1-1.html。

10、励志成为博客园大牛,喜欢就关注推荐我吧,哈哈。