你的位置:首页 > 操作系统

[操作系统]活动的生命周期系列(一)活动栈的生命周期


      生命周期对程序员很重要,特别当我们了解,就可以写出更流畅的程序,更好的来避规性能瓶颈,让我们的APP拥有更好的用户体验。我们继续来分享“活动状态及生存周期”,活动状态:运行状态,暂停状态,停止状态,销毁状态。活动的生成周期分别为:onCreate()、onSart()、onResme()、onPause()、onStop()、onDestroy()、onRestart()。

        1.运行状态:当一个活动处于栈的顶部时,这时活动就处于活动状态,系统是不愿意回收处于活动状态的,会影响用户体验。

        2.暂停状态:当一个活动不再处于栈的顶部时,但仍然可见时,这时就是暂停状态了。处于暂停状态的活动仍然可见,系统也愿意回收,刚样也会影响用户体验。

        3.停止状态:当一个活动不再处于栈的顶部时,并且完全不可见时,这时就是停止状态了。系统仍然会为这种活动保存成员变量和相应的状态,只有在内存很低的情况下才会进行回收。

        4.销毁状态:当一个活动从栈中移除时,这时就是销毁状态了。系统会最先处理这种活动,以释放手机的内存空间。

     活动的生存期(ActivityLifetime):Activity类中定义了7个回调方法分别是:onCreate()、onSart()、onResme()、onPause()、onStop()、onDestroy()、onRestart()。这7种方法覆盖了活动生命周期的每人环节,下面我们来一 一了解道来。

         1.onCreate():初始化操作,所有活动都从这里启始。这里可以加载布局,或绑定事件等。

         2.onSart():这个是活动变为不可见时调用。

         3.onResme():这个方法一直处于栈的顶部,在和用户交互时调用,一直处于动行状态。

         4.onPause():系统准备去启动或者恢复另一个活动时调用。这个方法以通常用来释放内存或保存数据,一定要快,不然会影响到栈顶部的活动运行。

         5.onStop():这个方法是活动处于不可见时调用,它与onPause()的区别在于如果启动的活动是一个对话框式的,则onPause()会得到执行而onStop()的不会执行。

         6.onDestroy():这个是活动被回收时调用,调用后活动就会被回收。

         7.onRestart():重启处于停止状态的活动。

     以上7种状态除onRestart()外,都是成对出现的。可以简化成三个活动期:

        1.完整期:活动处于onCreate()和onDestroy()之间的就是完成生命周期。在onCreate()实例化,在onDestroy()销毁。

        2.可见生存期:活动在处于onSart()和onStop()之间的就是可见生期存。与上面同样,在onSart()中创建,在onStop()中回收。

        3.前台生存期:onResme()和onPause()之间就是前台生存期。在前台生存期,活动总是处于运行状态或栈的顶部,此时活动是可以和用户进行交互的,我们平时接触最多的就是这种。下面这张图就很好的说明了,(图非本人所画)。