1.6 理解Android生命周期
Ian Darwin
1.6.1 问题
Android应用没有“主”(main)方法;你必须了解它们如何开始和停止。
1.6.2 解决方案
android.Activity类提供许多明确定义的生命周期方法,在应用程序启动、挂起、重新启动等情况下调用,还提供了一个方法,用于将活动标记为完成。
1.6.3 讨论
你的Android应用程序运行于自己的UNIX进程中,所以一般来说不会直接影响其他运行中的应用程序。Dalvik VM与操作系统接口,在应用程序启动、用户切换到另一个应用等情况下通知你。Android应用程序有一个明确定义的生命周期。
Android应用程序可能处于三种状态中:
活动(active),应用程序对用户可见并正在运行
暂停(paused),应用程序的一部分被掩盖,失去输入焦点
停止(stopped),应用程序完全隐藏
Android通过在合适的时候调用当前活动的如下方法,应用程序的状态可以在上述状态之间迁移:
void onCreate(Bundle savedInstanceState)
void onStart()
void onResume()
void onRestart()
void onPause()
void onStop()
void onDestroy()
可以在图1-14中看到生命周期的状态图。
对于应用程序的第一个活动,可以通过onCreate()知道应用程序已经启动。通常在这个方法中完成类似构造器的工作,如用setContentView()建立“主窗口”,为按钮添加监听器完成工作(包括启动附加的活动)等。即使是最简单的Android应用也需要这个方法。
可以在Eclipse中创建空项目,并用日志“debug”语句覆盖所有方法,观察各个生命周期方法的效果。