博客
关于我
Fragment和Activity的生命周期图
阅读量:557 次
发布时间:2019-03-07

本文共 1229 字,大约阅读时间需要 4 分钟。

Fragment作为Android中的重要组件,其生命周期管理至关重要。理解Fragment的生命周期可以帮助开发者更好地规划和管理Fragment的显示和状态。下面将详细介绍Fragment的各个生命周期方法及其作用。

Fragment的生命周期包括多个关键方法:

  • onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState)

    在Activity.onCreate之前调用,可用于获取除了View之外的资源 Cheney.

  • onAttach(Activity activity)

    当Fragment第一次与Activity产生关联时会调用,此后不会再调用。

  • onCreate(Bundle savedInstanceState)

    在onAttach执行完后立即调用,通常用于读取保存的数据或初始化片段资源。此方法不会显示任何视图,因此若需要访问网络或获取数据,建议在新线程中操作。

  • onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

    创建Fragment显示的视图。inflater用于加载布局文件,container是父标签对应的ViewGroup,savedInstanceState用于获取Fragment保留的状态数据。

  • onViewDestroyed(View view)

    在 criatedView 设置后会调用。此方法特别重要,可用于释放或回收相关资源。

  • onActivityCreated(Bundle savedInstanceState)

    在Activity.onCreate执行完成后立即调用,表示窗口已初始化,适合调用控件相关的逻辑。

  • ** onStart()**

    开始执行与视图相关的逻辑代码,如处理键盘点击事件。

  • ** onResume()**

    是Fragment从创建到最后显示的方法之一,适合执行延后处理或动态更新操作。

  • onPause()

    当Fragment即将从Activity切换到另一个Fragment或退出时触发,通常用于保存当前的状态或释放一些非持有资源。

  • ** onStop()**

    Fragment完全从屏幕上消失时调用,适合释放持有资源。

  • onDestroyView()

    当Fragment从Activity退回回退栈或被保存到状态时调用,用以释放与视图相关的资源。

  • onDestroy()

    当Fragment完全不再使用时触发,如按下返回键退出时调用,适合回收资源或释放长期保留的引用。

  • onDetach()

    Fragment完全脱离Activity关联触发,资源释放完毕。

  • 这些生命周期方法不仅帮助Fragment与Activity互动,还能有效管理片段的显示和状态,确保应用程序的运行流畅。

    转载地址:http://hijnz.baihongyu.com/

    你可能感兴趣的文章
    printf的格式控制字符串
    查看>>
    PrintStream概述
    查看>>
    Prismix:Prisma 架构混合器,为复杂项目而生
    查看>>
    pritunl服务安装及配置
    查看>>
    Private Destructor
    查看>>
    private和protected能同时修饰成员变量吗_天天用注解你了解注解是怎么实现的吗?...
    查看>>
    privoxy Invalid header received from client.
    查看>>
    Privoxy代码下载
    查看>>
    Probabilistic-Programming-and-Bayesian-Methods-for-Hackers
    查看>>
    pytorch中的求和函数sum(axis=x)解释
    查看>>
    Problem F: 质心算法
    查看>>
    Problem N HDU 2612 Find a way (两次BFS求最值)
    查看>>
    Process /usr/libexec/gdu-notification-daemon was killed by signal 6 (SIGABRT)
    查看>>
    process.env.VUE_APP_BASE_API 获取不到
    查看>>
    Process.run() 和 Process.start() 之间的区别
    查看>>
    Processes
    查看>>
    Processing通过编程实现艺术设计_实现艺术和现实的交互---数据设计分析002
    查看>>
    ProcessOnLoading
    查看>>
    SpringBoot中集成screw(螺丝钉)实现数据库表结构文档生成
    查看>>
    PROFINET 模拟器使用教程
    查看>>