结合Application.ActivityLifecycleCallbacks的生命周期及MyFragmentLifecycleCallbacks生命周期整合流程

结合Application.ActivityLifecycleCallbacks的生命周期及MyFragmentLifecycleCallbacks生命周期整合流程

一、Application.ActivityLifecycleCallbacks 各个方法说明

Application.ActivityLifecycleCallbacks提供了以下主要方法来监听 Activity 的生命周期变化:

  1. onActivityCreated(Activity activity, Bundle savedInstanceState):当 Activity 被创建时调用。
  2. onActivityStarted(Activity activity):当 Activity 开始可见时调用。
  3. onActivityResumed(Activity activity):当 Activity 处于前台并可与用户交互时调用。
  4. onActivityPaused(Activity activity):当 Activity 失去焦点但仍然可见时调用。
  5. onActivityStopped(Activity activity):当 Activity 不可见时调用。
  6. onActivityDestroyed(Activity activity):当 Activity 被销毁时调用。

二、MyFragmentLifecycleCallbacks 的逻辑及与 ActivityLifecycleCallbacks 的结合

  1. onFragmentPreAttached

    • 页面状态:当一个 Fragment 即将被附加到 Activity 之前触发。这个阶段通常在 Activity 的创建过程中或者当新的 Fragment 要被添加到已有 Activity 时发生。在这个阶段,可以进行一些初始化数据的准备工作,或者设置一些初始状态变量,为后续的附加过程做好准备。
    • 与 ActivityLifecycleCallbacks 的结合:在onActivityCreated之后,如果有新的 Fragment 要被添加到 Activity,可能会触发这个方法。可以通过 ActivityLifecycleCallbacks 了解到 Activity 的创建状态,为 Fragment 的附加做好准备。
  2. onFragmentAttached

    • 页面状态:当 Fragment 成功附加到 Activity 时触发。此时 Fragment 已经成为 Activity 视图层次结构的一部分,可以开始与 Activity 进行交互,或者进行一些依赖于 Activity 上下文的操作。
    • 与 ActivityLifecycleCallbacks 的结合:在onActivityCreated和可能的后续操作之后,当 Fragment 被附加到 Activity,这个方法会被调用。可以结合 ActivityLifecycleCallbacks 中对 Activity 的状态了解,更好地管理 Fragment 的附加过程。
  3. onFragmentViewCreated

    • 页面状态:当 Fragment 的视图被创建完成后调用。这意味着 Fragment 的布局文件已经被实例化,并且可以通过视图 ID 访问到各个视图组件。在这个阶段,可以进行视图相关的初始化工作,如绑定视图组件到数据、设置点击监听器、初始化适配器等。
    • 与 ActivityLifecycleCallbacks 的结合:通常在 Activity 的视图创建完成后(可能在onActivityCreated和后续方法中),如果有 Fragment 的视图被创建,这个方法会被触发。可以结合 ActivityLifecycleCallbacks 中对 Activity 视图状态的了解,更好地管理 Fragment 的视图创建过程。
  4. onFragmentStarted

    • 页面状态:当 Fragment 变得可见时触发。这可能发生在用户导航到包含该 Fragment 的界面,或者 Fragment 从不可见状态变为可见状态。可以在这里启动一些需要在 Fragment 可见时进行的操作,比如播放视频、开始动画、启动数据加载等。
    • 与 ActivityLifecycleCallbacks 的结合:当 Activity 的状态变为可见(onActivityStartedonActivityResumed)后,如果 Fragment 也变得可见,这个方法会被调用。可以结合 ActivityLifecycleCallbacks 中对 Activity 可见性的了解,协调 Fragment 的可见性相关操作。
  5. onFragmentResumed

    • 页面状态:当 Fragment 恢复时调用,通常是在用户从其他 Fragment 或 Activity 返回到这个 Fragment 时发生。在这个阶段,Fragment 处于活动状态并且可以接收用户输入。可以在这里重新启动一些在暂停时暂停的操作,如继续播放视频、恢复动画、恢复数据加载等。
    • 与 ActivityLifecycleCallbacks 的结合:当 Activity 处于前台并可与用户交互(onActivityResumed)后,如果 Fragment 也恢复,这个方法会被调用。可以结合 ActivityLifecycleCallbacks 中对 Activity 活跃状态的了解,协调 Fragment 的恢复操作。
  6. onFragmentPaused

    • 页面状态:当 Fragment 失去焦点或进入后台时触发。比如用户切换到另一个应用或者导航到另一个 Fragment。在这个阶段,可以暂停一些不需要在后台运行的操作,如暂停视频播放、停止动画、暂停数据加载等,以节省资源。
    • 与 ActivityLifecycleCallbacks 的结合:当 Activity 失去焦点(onActivityPaused)后,如果 Fragment 也被暂停,这个方法会被调用。可以结合 ActivityLifecycleCallbacks 中对 Activity 暂停状态的了解,协调 Fragment 的暂停操作。
  7. onFragmentStopped

    • 页面状态:当 Fragment 不再可见时调用。这可能是因为用户导航到其他界面,或者 Fragment 被其他 Fragment 覆盖。可以在这里停止一些不需要在 Fragment 不可见时继续执行的操作,如停止动画、暂停数据加载等。
    • 与 ActivityLifecycleCallbacks 的结合:当 Activity 不可见(onActivityStopped)后,如果 Fragment 也停止,这个方法会被调用。可以结合 ActivityLifecycleCallbacks 中对 Activity 不可见状态的了解,协调 Fragment 的停止操作。
  8. onFragmentDestroyed

    • 页面状态:当 Fragment 即将被销毁时触发。这可能发生在 Activity 被销毁、配置更改(如屏幕旋转)导致 Fragment 重建,或者 Fragment 被从 FragmentManager 中移除。可以在这里执行清理工作,如释放资源、取消未完成的任务、移除监听器等。
    • 与 ActivityLifecycleCallbacks 的结合:当 Activity 被销毁(onActivityDestroyed)后,如果 Fragment 也需要被销毁,这个方法会被调用。可以结合 ActivityLifecycleCallbacks 中对 Activity 销毁状态的了解,协调 Fragment 的销毁和资源清理操作。
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值