Java,Android基础,可能会面试到的小知识
1.面向对象的三大特征
2.Activity的四种启动模式
在学习启动模式之前先了解Activity栈,栈都是先进后出的,Activity栈也是同样的,都是先进后出的机制,那当启动一个Activit,系统就会创建一个Activity实例放在Activity栈中,当销毁一个Activity的时候,系统就会从栈中消除掉响应的Activity实例,那么,每次Activity的启动都会在栈中创建一个实例,就会消耗内存,也不利于Activity的复用,所以,就有了Activity的启动模式,好,进入启动模式:
1.Satdard(标准启动模式):标准启动模式,也就是Activity的默认启动模式.用这种启动的Activity会在它想要去的Activity栈中创建一个实例,而不论这个栈中是否存在了这个实例
2.singleTop(栈顶复用模式):用该模式启动Activity,如果在想要去的Activity栈的栈顶的话,那么就不会再次创建该Activity实例,而是回调Activity中的onNewIntent方发来做处理
3.singleTask(栈内复用模式):该模式和singleTop类似,用该模式启动栈中栈顶的Activity实例的,也同样不会再次创建该Activity实例,而是回调中onNewIntent方法来做处理,但有一种不同,如果栈中已经存在该实例(不在栈顶),那么系统就会复用Activity实例,把位于该Activity实例上的其他实例全部清除掉,同时把该Activity调到栈顶
4singlelnstance(单实例模式):这种模式可以理解为加强版的singleTask,利用该模式启动的Activity实例,如果系统检测到已经存在该实例,则会重用该实例,然后回调onNewIntent方法,如果系统检测到没有该实例,则会创建一个新的Activity栈和一个实例,然后将该实例压入栈中,这个栈有一个特点,只能容纳这一个实例,不能接收其他实例也就是说该模式启动的Activity会独占一格Activity栈
3.Activity,Fragment的生命周期
Activity生命周期图: