Activity和Fragment生命周期

来源:互联网 发布:mac系统镜像ios下载 编辑:程序博客网 时间:2024/05/01 06:31

Activity的生命周期

在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。

Activity有四种本质区别的状态

  1. 在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(active or running)
  2. 如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity
    被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。
  3. 如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。
  4. 如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。

这里写图片描述

onCreate():活动第一次创建时被调用。该方法默认继承了super.onCreate(savedInstanceState)用于保存活动之前状态。

onStart():在onCreate()方法执行完随便执行的方法,此时视图还是不可见状态。

onRestart():当活动执行至onPause()方法,然后又重新启动时调用。

onPause():当系统准备将当前活动后台时调用,此时活动处于暂停状态。通常停止一些动画以及比较占用CPU资源的动作,为了尽快的切换到下一个Activity,或者关闭一些专用的入口。

onStop():当活动对用户不可见时调用。这可能发送在活动即将被销毁,或者另外一个活动重新启用并覆盖它。

onDestroy():在活动销毁前调用。这是活动执行的最后一个方法。

Fragment生命周期

这里写图片描述

onAttach():fragment关联Activity。

onCreate():系统创建fragment的时候回调它。 Fragement 也可以 重写 onSaveInstanceState(BundleoutState) 方法, 保存Fragement状态。

onCreateView():第一次使用时,fragment会在上面加载已给layout布局出来。

onActivityCreated():当Activity中的onCreate方法执行完之后调用,用来判断活动是否已经被创建。

onStart():和Activity一致,启动fragment时回调,此时fragment可见。

onResume():和Activity一致,在Activity中运行时可见的。fragment为当前视图,可获取焦点。

onPause():和Activity一致,其他fragment可以获得焦点,用户当前暂时离开了这个fragment。

onStop():和Activity一致,fragment不可见的。

onDestroyView():fragment中的布局被移除时调用。表示fragment销毁相关联的UI布局,清除所有跟视图相关的资源。

onDestroy():销毁fragment对象。

onDetach():解除fragment和Activity的关联时调用。

原创粉丝点击