Activity的一个初步认识
这是官方文档中给出的生命周期图。
以下是中文图:
Activity是与用户交互的接口,它提供了一个用户完成相关操作的窗口。当我们在开发中创建Activity后,通过调用setContentView(View)方法来给该Activity指定一个布局界面,而这个界面就是提供给用户交互的接口。Android系统中是通过Activity栈的方式来管理Activity的,而Activity自身则是通过生命周期的方法来管理的自己的创建与销毁。
而对于几个方法有以下的作用解释:
- onCreate :表示Activity正在被创建。在这里可以做一些初始化的工作。
onRestart :表示Activity正在重新启动。当当前Activity从不可见重新变成可见状态。
onStart :表示Activity正在被启动。已经可见,但不在前台,无法交互。
onResume :表示Activity已经可见,并且出现在前台可以交互。
onPause :表示Activity正在停止。在这里可以做一些储存数据,停止动画等工作,但不能太耗时,因为必须onPause执行完成之后新的Activity才能Resume。
onStop :表示Activity即将停止。可以进行一些稍微重量级的回收工作,不能太耗时。
onDestroy :表示Activity即将被销毁。可以进行一些回收工作和最终的资源释放
图中有以下几点需要注意:
1.Activity实例是由系统自动创建,并在不同的状态期间回调相应的方法。一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。称之为entire lifetime。
2.当执行onStart回调方法时,Activity开始被用户所见(也就是说,onCreate时用户是看不到此Activity的,那用户看到的是哪个?当然是此Activity之前的那个Activity),一直到onStop之前,此阶段Activity都是被用户可见,称之为visible lifetime。
3.当执行到onResume回调方法时,Activity可以响应用户交互,一直到onPause方法之前,此阶段Activity称之为foreground lifetime。