Activity与Servlet的异同:
同:
都是向用户呈现界面
都继承基类
开发后都要进行配置
Activity运行在Android应用中,Servlet运行在web应用中。
无需创建实例,无须调用方法。Activity和Servlet都是由系统的回调的方式来调用。
都有各自的生命周期,且其生命周期由外部负责管理
不会直接相互调用,因此都不能够直接进行数据交换。Servlet的数据交换依赖于requestScope、sessionScope等;Activity依赖于Bundle。
不同:
Activity是Android窗口的容器,最终以窗口的形式显示出来,而servlet并不会生成应用界面,而是向浏览者生成文本响应。
Activity运行在Android应用中,因此Activity本质还是通过各种界面组件来搭建界面;而Servlet以IO流向浏览者生成文本响应,浏览者看到页面是浏览器负责生成的。
Activity的跳转时Intent负责;Servlet的跳转主要是用户请求。
Activity的四中加载模式:
standrad:就是Task栈一直被使用,不会启动新的Task栈
即每次一个Activity实例都会放入Task中,而不在乎Task的ID是否一样
singleTop:如果目标Activity已经存在在栈顶,不会再重建实例;但是如果不是栈顶,就算里面的栈已经存在实例,还是会新建该实例并加载到栈顶。
singleTask:即永远只有一个实例!若不存在则新建并加载到栈顶,若已经在栈顶则直接使用,若不是栈顶但是已经存在则删掉其之前的 所有实例保证它到栈顶。
singleInstance:
若目标Activity不存在,系统会创建新的Task栈和目的Activity实例,并放入到Task栈顶
若已经存在不管位于哪,都会把该Activity所在的Task转到前台并且显示出来。