Android 各种生命周期

来源:互联网 发布:windows优化大师教程 编辑:程序博客网 时间:2024/05/16 12:56

1、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再次显示给用户时,它必须重新初始化页面.
      注:
     1.activity 从onstart到onpause生命周期,该activity在前台一直可见。
     2.点击home键,activity依次执行,onpause onstop该activity被覆盖,并没有被销毁(若手机内存不足,系统将会自动回收该activity),未被回收的状态下重新回到activity 执行onrestart() onstart() onresume() 。如果被销毁,将从onCreate函数开始重新初始化页面。


2、Fragment的生命周期 , 如图.

  
                                                                             
     1、生命周期如上,我在自己的项目中用到的是ViewPager+FragmentActivity 重写FragmentPagerAdapter数据适配器。

     2、ViewPager的setOffscreenPageLimit()函数可以一次性初始化指定数量的fragment,并且保存该fragment 这样在fragment切换到下一个时,不用重新初始化下一个fragment。

     3、fragment中的setUserVisibleHint(boolean isVisibleToUser)函数,在fragment切换时,该函数将会被执行,判断函数中isVisibleToUser的值,若为true即当前fragment正显示在手机前端




0 0
原创粉丝点击