美文网首页
生命周期

生命周期

作者: 码农_薛 | 来源:发表于2020-09-01 11:34 被阅读0次

Activity声明周期

E/A---: onCreate

E/A---: onStart

E/A---: onResume

E/A---: onPause

E/A---: onStop

E/A---: onDestroy

A--B

E/A---: onCreate

E/A---: onStart

E/A---: onResume

跳转B

E/A---: onPause

E/B---: onCreate

E/B---: onStart

E/B---: onResume

E/A---: onStop

返回A

E/B---: onPause

E/A---: onRestart

E/A---: onStart

E/A---: onResume

E/B---: onStop

E/B---: onDestroy

横竖屏切换

竖屏-横屏

E/A---: onPause

E/A---: onStop

E/A---: onDestroy

E/A---: onCreate

E/A---: onStart

E/A---: onResume

横屏--竖屏(同上)

解决方式:

1、设置横竖屏(固定)

android:screenOrientation="xxx"

landscape 横屏

portrait 竖屏

2、设置不改变生命周期

android:configChanges="keyboardHidden|orientation|screenSize"

监听切换

@Override

​ public void onConfigurationChanged(Configuration newConfig) {

​ }

判断 当前状态

getResources().getConfiguration().orientation

Fragment 生命周期

Fragment创建对象并不会执行生命周期

使用FragmentManager时 :

Add生命周期:

开始

E/A---: onCreate

E/A---: onCreateView

E/A---: onViewCreated

E/A---: onActivityCreated

E/A---: onStart

E/A---: onResume

// 结束

E/A---: onPause

E/A---: onStop

E/A---: onDestroyView

E/A---: onDestroy

E/A---: onDetach

show和hide时 生命周期无变化

Replace方法切换时

​ E/B---: onCreate

​ E/A---: onPause

​ E/A---: onStop

​ E/A---: onDestroyView

​ E/A---: onDestroy

​ E/A---: onDetach

​ E/B---: onCreateView

​ E/B---: onViewCreated

​ E/B---: onActivityCreated

​ E/B---: onStart

​ E/B---: onResume

ViewPager + fragment

1) FragmentPagerAdapter和FragmentStatePagerAdapter

不同点: fragment 存储、恢复、销毁 的方式不同

2)显隐监听

setUserVisibleHint 生效

onHiddenChanged无效

FragmentPagerAdapter

1 初始化时生命周期

​ E/D---: onCreate

​ E/D---: onCreateView

​ E/D---: onViewCreated

​ E/D---: onActivityCreated

​ E/D---: onStart

​ E/D---: onResume

2 未销毁时页面切换不调用生命周期
3.1 销毁时调用生命周期

E/A---: onPause

E/A---: onStop

E/A---: onDestroyView

3.2 销毁再次创建(少一个onCreate)

​ E/A---: onCreateView

​ E/A---: onViewCreated

​ E/A---: onActivityCreated

​ E/A---: onStart

​ E/A---: onResume

4 新创建并销毁一个

​ E/D---: onCreate

​ E/A---: onPause

​ E/A---: onStop

​ E/A---: onDestroyView

​ E/D---: onCreateView

​ E/D---: onViewCreated

​ E/D---: onActivityCreated

​ E/D---: onStart

​ E/D---: onResume

5 再次显示时

​ E/A---: onCreateView

​ E/A---: onViewCreated

​ E/A---: onActivityCreated

​ E/D---: onPause

​ E/D---: onStop

​ E/D---: onDestroyView

​ E/A---: onStart

​ E/A---: onResume

6退出时生命周期

​ E/C---: onPause

​ E/C---: onStop

​ E/C---: onDestroyView

​ E/C---: onDestroy

​ E/C---: onDetach

FragmentStatePagerAdapter

1 初始化时正常周期(同上)
2 未销毁时页面切换不调用生命周期
3 销毁时调用生命周期

E/A---: onPause

E/A---: onStop

E/A---: onDestroyView

E/A---: onDestroy

E/A---: onDetach

4 新创建并销毁一个

E/D---: onCreate

E/A---: onPause

E/A---: onStop

E/A---: onDestroyView

E/A---: onDestroy

E/A---: onDetach

E/D---: onCreateView

E/D---: onViewCreated

E/D---: onActivityCreated

E/D---: onStart

E/D---: onResume

5 再次显示时(同4)
6退出时生命周期(正常退出)

相关文章

  • Vue生命周期

    什么是生命周期方法?生命周期钩子=生命周期函数=生命周期事件 Vue生命周期方法分类  创建期间的生命周期方法: ...

  • Activity,Fragment,Service生命周期图

    Activity生命周期 Fragment生命周期 Service生命周期

  • 10,vue生命周期

    生命周期钩子=生命周期函数=生命周期事件 根据生命周期的不同分为三类: 创建阶段的生命周期 运行阶段的生命周期 销...

  • 微信小程序生命周期的记录

    小程序中生命周期分为3类: 应⽤的生命周期 页面的生命周期 组件的生命周期 一、生命周期 1. 应⽤的生命周期[h...

  • Lifecycle 生命周期源码解析

    目录: 什么生命周期 什么是生命周期感知型组件 Activity是如何把生命周期传给生命周期感知组件的 生命周期 ...

  • Vue生命周期

    Vue生命周期详解 一、Vue生命周期 与 作用 (生命周期钩子就是生命周期函数) (1)Vue生命周期:每个Vu...

  • uni-app微信小程序开发 - 生命周期

    uni-app的生命周期分为应用生命周期和页面生命周期还有组件生命周期。 应用生命周期[https://uniap...

  • 【小程序】生命周期

    小程序生命周期分为两类:应用生命周期和页面生命周期。 应用生命周期 应用生命周期包括onLaunch、onShow...

  • Java基础知识整理3——Android篇

    一、activity生命周期,fragment生命周期,broadcastReceiver生命周期,service...

  • Fragment的生命周期

    Fragment生命周期 宿主MainActivity生命周期 Fragmengs生命周期: activity_f...

网友评论

      本文标题:生命周期

      本文链接:https://www.haomeiwen.com/subject/ikxvsktx.html