activity生命周期心得,activity生命周期图
Activity与Fragment的生命周期详解
Fragment的生命周期初探:因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。
Fragment的生命周期是寄托到Activity中,Fragment可以被Attach添加和Detach释放。Fragments是view controllers,它们包含可测试的,解耦的业务逻辑块,由于Fragments是构建在views之上的,而views很容易实现动画效果,因此Fragments在屏幕切换时具有更好的控制。
Fragment是android0引入的新控件,果应用使用在0以下、6及以上的版本,需要引入v4包。 Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。
Activity 的生命周期,右边对比参照的是 Fragment 中 View 的生命周期(或者叫有效范围)另外关于 Fragment 的状态保存方法有:这两个的用法和 Activity 的状态保存类似。要注意的是 onSaveInstanceState() 方法在 API 28 之前会在 onStop() 之前触发,在 API 28 及之后会在 onStop() 之后触发。
例如:有四个 fragment 当滑动到第四页的时候 第一页执行onDestroyView(),但没有执行onDestroy。他依然和activity关联。当在滑动到第一页的时候又执行了 onCreateView()。 生命周期可以自己试一下。那么问题来了。
Activity生命周期的终点。有两种情况会导致它被触发:1)执行了Activity#finish()方法;2)Android系统由于资源不足等原因决定杀掉Activity所在进程。通过isFinishing()方法可以判断出是哪种情况。在这个方法里,我们一般要做的事情是释放Activity占有的资源,例如后台正在进行的下载线程等等。
Activity的生命周期及常见回调顺序
在Activity被销毁之前会回调该方法,这也是Activity生命周期的最后一个回调。
activity主要生命周期的方法说明: onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前储存的任何状态的访问!onStart():activity变为在屏幕上对用户可见时调用。
onCreate:当Activity创建时仅且调用一次,该方法主要适用于初始化页面。2 onStart:当Activity调用onCreate方法之后,然后调用此方法开启Activity,Activty此时可见但不可交互。3 onResume:此时Activity在前台可见且可与用户交互。适合做UI更新操作。4 onPouse:当Activity被另外一个Activity覆盖时调用该方法。
onCreate():当activity第一次被创建的时候调用。onStart():当activity变成用户可见的时候调用。onResume():当界面获取焦点的时候调用。onPause():当界面失去焦点的时候调用。onStop():当界面不可见的时候调用 onRestart():当Activity重新启动时调用。onDestroy():当activity被销毁的时候调用。
活动生命周期的每个阶段都对应于金字塔的一个步骤。当系统创建一个新的Activity实例时,回调方法从塔的底部一级一级地移动到塔的顶部。当它位于金字塔的顶部时,活动位于用户的前台,此时用户可以与活动进行交互。当用户想要离开活动时,系统调用另一系列方法将活动的状态从顶部移到底部。
当Activity可见且获得用户焦点能交互时系统会调用 onPostResume() activity真正获取焦点之后回调,此方法在onResume()方法之后 - 通常用不到 onAttachedToWindow() 在第一次调用onDraw前调用的,也就是我们写的View在没有绘制出来时调用的,但只会调用一次。
Android基础之Activity生命周期
认识activity的生命周期 1 Activity的生命周期对它的任务、backstack和与此有关联的activity有着直接的影响。因此想开发出一个健壮的有弹性的Android程序,你需要学会如何去管理activity的生命周期(即调用各种回调方法)。
通过上述图示,我们可以总结Activity的生命周期规律如下:启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
Activity生命周期的终点。有两种情况会导致它被触发:1)执行了Activity#finish()方法;2)Android系统由于资源不足等原因决定杀掉Activity所在进程。通过isFinishing()方法可以判断出是哪种情况。在这个方法里,我们一般要做的事情是释放Activity占有的资源,例如后台正在进行的下载线程等等。