概述
1.Activity生命周期
正常情况系,Activity会经历如下几个阶段:
- onCreate:表示Activity正在被创建。
- onRestart:表示Activity正在被重新启动。
- onStart:表示Activity正在被启动,这时已经可见,但没有出现在前台无法进行交互。
- onResume:表示Activity已经可见,并且处于前台。
- onPause:表示Activity正在停止(可做一次保存状态停止动画等非耗时操作)。
- onStop:表示Activity即将停止(可进行重量级回收工作)。
- onDestroy:表示Activity即将被销毁。
对于生命周期,通常还会问如下的一些问题:
- 第一次启动:onCreate->onStart->onResume;
- 打开新的Activity或者返回桌面:onPause->onStop。如果打开新的Activity为透明主题,则不会调用onStop;
- 当回到原来Activity时:onRestart->onStart->onResume;
- 当按下返回键:onPause->onStop->onDestroy
2.Activity启动模式
Activity的启动模式有四种:Standard、SingleTop、SingleTask和SingleInstance。
- Standard:标准模式,也是默认模式。每次启动都会创建一个全新的实例。
- SingleTop:栈顶复用模式。这种模式下如果Activity位于栈顶,不会新建实例。onNewIntent会被调用,接收新的请求信息,不会再低啊用onCreate和onStart。
- SingleTask:栈内复用模式。升级版singleTop,如果栈内有实例,则复用,并会将该实例之上的Activity全部清除。
- SingleInstance:系统会为它创建一个单独的任务栈,并且这个实例独立运行在一个 task中,这个task只有这个实例,不允许有别的Activity 存在(可以理解为手机内只有一个)。
3.Activity启动流程
在理解Activity的启动流程之前,先让我们来看一下Android系统启动流程。总的来说,Android系统启动流程的主要经历init进程 -> Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程等阶段。
- 启动电源以及系统启动:当电源按下时引导芯片从预定义的地方(固化在ROM)开始执行,加载引导程序BootLoader到RAM,然后执行。
- 引导程序BootLoader:BootLoader是在Android系统开始运行前的一个小程序,主要用于把系统OS拉起来并运行。
- Linux内核启动:当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当其完成系统设置时,会先在系统文件中寻找init.rc文件,并启动init进程。
- init进程启动:初始化和启动属性服务,并且启动Zygote进程。
- Zygote进程启动:创建JVM并为其注册JNI方法,创建服务器端Socket,启动SystemServer进程。
- SystemServer进程启动:启动Binder线程池和SystemServiceManager,并且启动各种系统服务。
- Launcher启动:被SystemServer进程启动的AMS会启动Launcher,Launcher启动后会将已安装应用的快捷图标显示到系统桌面上。
Launcher进程启动后,就会调用Activity的启动了。首先,Launcher会调用ActivityTaskManagerService,然后ActivityTaskManagerService会调用ApplicationThread,然后ApplicationThread再通过ActivityThread启动Activity,完整的分析可以参考Android 之 Activity启动流程
最后
以上就是腼腆太阳为你收集整理的Android------ 面试题收集1的全部内容,希望文章能够帮你解决Android------ 面试题收集1所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复