在Android应用运行过程中,Activity的活动状态由系统通过栈结构进行管理,处于前台的Activity位于栈顶,其他则依次存放于其下,遵循后进先出的原则。
1、 Activity通常经历启动、运行、暂停和销毁四个状态。
2、 当前界面处于激活状态,显示在最前端,用户可直接操作并聚焦控件。
3、 处于暂停状态时,当前Activity虽可见但无法获得焦点,因有其他Activity处于前台。
4、 活动处于停止状态,界面不可见且失去焦点。
5、 当Activity被终止或其所在的Dalvik进程被关闭时,即进入销毁状态。
6、 Activity生命周期流程图解
7、 或许已令人厌倦,但梳理状态流程对自我反思仍具价值。
8、 当Activity被创建时,系统会自动调用onCreate方法,并传入保存的状态数据。
9、 此方法仅执行一次。
10、 启动Activity时会自动调用该方法。
11、 当重新启动Activity时,系统会自动调用onRestart()方法。
12、 当Activity恢复时会调用onResume()方法,此方法必定在onStart()执行之后被回调。
13、 当Activity暂停时,系统会自动调用onPause()方法。
14、 当Activity停止运行时,系统会自动调用该方法。
15、 销毁Activity时回调此方法,整个生命周期中仅执行一次。
16、 对比Activity与Servlet的生命周期状态,有助于深入理解两者在加载、运行及销毁过程中的相似与差异,尤其对熟悉Java Servlet的开发者而言,能更清晰掌握其工作机制。
17、 Activity和Servlet均负责将用户界面呈现给使用者。
18、 开发者在创建Activity或Servlet时,均需继承系统提供的基类。
19、 开发完成的Activity和Servlet都需要进行相应的配置才能正常使用。
20、 Activity在Android应用中运行,而Servlet则在Web应用中运行。
21、 开发者无需手动创建Activity或Servlet实例,也无需直接调用其方法,这些方法均由系统通过回调机制自动触发和执行。
22、 Activity和Servlet各自拥有生命周期,均由外部系统进行管理和控制。
23、 Activity与Servlet之间无法直接相互调用,因而也不能直接传递数据。在Web应用中,Servlet间的数据共享依赖于requestScope、sessionScope等作用域机制;而在Android开发中,不同Activity之间的数据传递则需通过Bundle来实现。两者均需借助特定的中间载体完成信息交换,确保数据在组件间安全有效地传输。
24、 Activity与Servlet差异显著,因二者应用场景截然不同,设计目标和运行环境均有本质区别。
25、 Activity作为Android应用的窗口容器,最终以可视化界面呈现;而Servlet不构建用户界面,仅向客户端返回文本形式的响应内容。两者在功能定位与表现形式上存在本质差异。
26、 Activity在Android应用中运行,其界面由各类UI组件构建而成;而Servlet则通过IO流将文本数据发送给客户端,用户所见的页面实际由浏览器解析并渲染生成。两者实现方式不同,前者直接构建原生界面,后者依赖浏览器呈现内容。
27、 页面跳转由Intent对象管理,而Servlet跳转则依据用户请求决定。
28、 Servlet运行机制示意图如下所示
29、 这个例子的对比略显片面,如今许多人已不再直接使用Servlet,而是借助框架。不过掌握其基础,仍有助于部分人更好地理解相关原理与问题。
评论
更多评论