你自己写Activity的时候,就需要按照需求来重载这些方法了。当然onCreate是必须有点饿,不然你的程序会运行不聊的。在一个Activity正常启动的时候,他被调用的顺序是:onCreate-->onStart-->onResume-->onPause-->onStop-->onDestory。而Activity要被干掉的话,也是有顺序的,就是onPause-->onStop-->onDestory,这就是一个完整的生命周期。也许你会问,如果程序正在运行着,我想运行其他程序怎么办呢?那就会onPause-->onStop,恢复的时候直接onStart-->onResume,如果打断这个应用程序的是一个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复的时候onResume 。
下面详细介绍一下在这些方法中我们都能做什么:
1、onCreate:在这里创建我们的界面,以及初始化数据的操作;
2、onStart:这里是用户可交互但是不可见的,因为他可能被隐藏或者被遮挡着;
3、onResume:这里用户也是可交互的,一个onPause的Activity要重新运行的话就会跳到这里来;
4、onPause:这一步是用户可见但是不可交互的。因为从这里,你的程序的优先级开始降低,也可能直接被干掉或者回收,所以在这里不能执行一些耗时或者耗费系统资源的操作,同时,我们还要在这里保存数据以便在onResume读出来。需要注意的是:在这个方法做的事情时间不能太长,因为下一个Activity不会等到这个方法执行完才启动的。
5、onStop:这里也是不可见的,被下一个Activity覆盖掉了。在这里可以执行onRestart方法来重新启用Activity。
6、onDestory:这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异常的。
onPause、onStop、onDestory,这三种状态下的Activity都可能被系统干掉,所以为了保证程序的正常,你要在onPause方法里将用户编辑的内容以及需要保存的内容都保存到存储媒介上或者数据库中。
由于本人水平有限,所以可能有些地方理解错误或者没有说到的地方,欢迎大家指正!