多语言展示
当前在线:1695今日阅读:145今日分享:43

【Android】Activity的生命周期与加载状态

当Activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理。当前活动的Activity位于栈顶。
工具/原料

编译工具:Eclipse

方法/步骤
1

简单的理解Activity大致会经过4个状态活动状态:当前Activity位于前台,用户可见,可以获取控件的焦点。暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获取焦点。停止状态:该Activity不可见,失去焦点。销毁状态:该Activity结束,或Activity所在Dalvik进程被结束。

2

Activity的生命周期示意图估计大家都看吐了(但是有时自己想状态步骤的处理还是很有帮助的)

3

onCreate(Bundle savedStatus):创建Activity时被回调。该方法只会被调用一次。onStart():启动Activity时被回调。onRestart():重新启动Activity时被回调。onResume():恢复Activity时被回调,onStart()方法后一定会回调onResume().onPause():暂停Activity时被回调。onStop():停止Activity时被回调。onDestroy():销毁Activity时被回调。该方法只会被调用一次。

4

Activity与Servlet的状态对比(学java的Servlet不会陌生。通过这个加载的状态的理解会更深刻。)Activity、Servlet的职责都是用户呈现界面。开发者开发Activity、Servlet都继承系统的基类。Activity、Servlet开发出来之后都需要进行配置。Activity运行于Android应用中,Servlet运行于Web应用中。开发者无须创建Activity、Servlet的实例,无须调用它们的方法。Activity、Servlet的方法都由系统以回调的方式来调用。Activity、Servlet都有各自的生命周期,它们的生命周期都由外部负责管理。Activity、Servlet都不会直接相互调用,因此都不能直接进行数据交换。Servlet之间的数据交换需要借助于Web应用提供的requestScope、sessionScope等;Activity之间的数据交换要借助于Bundle。

5

其实Activity与Servlet之间的差别很多,因为它们本身所在场景是完全不同的,它们之间的区别也很明显:Activity是Android窗口的容器,因此Activity最终以窗口的形式显示出来。而Servlet并不会生成应用界面,只是向浏览者生成文本响应。Activity运行于Android应用中,因此Activity的本质还是通过各种界面组件来搭建界面;而Servlet则主要以IO流向浏览者生成文本响应,浏览者看到的界面其实是由浏览器负责生成的。Activity之间的跳转主要通过Intent对象来控制;而Servlet之间的跳转则主要由用户请求来控制。

6

最后附上Servlet的理解示意图(其实这个例子对比的说明有点片面,Servlet其实有很多人是不用的,直接用框架了。但是基础还是可以帮助一些朋友理解一些问题。)

注意事项
1

本步骤需要一定代码基础

2

程序代码以代码片段的形式展示

推荐信息