【问题标题】:Tracking Fragment Lifecycle like Application.ActivityLifecycleCallbacks跟踪片段生命周期,如 Application.ActivityLifecycleCallbacks
【发布时间】:2017-09-06 04:24:58
【问题描述】:

大家都知道,在 Android 中我们可以通过 Application.ActivityLifecycleCallbacks 来跟踪 Activity 以获取系统的触发,Activity 的创建、停止、销毁等时间。

我在 stackoverflow 上只发现了一个与此主题相关的问题。
Hooking into fragment's lifecycle like Application.ActivityLifecycleCallbacks

不幸的是,提供的解决方案仅适用于 post 25.2.0 Android。
我正在寻找 pre 25.2.0 的灵魂。也许可以通过一些解决方法,也许是反射?

【问题讨论】:

  • 您可以在支持库here 中跟踪更改。有什么特别的理由不更新吗?

标签: java android android-fragments fragmentmanager


【解决方案1】:

我正在寻找 25.2.0 之前的版本

FragmentManager.FragmentLifecycleCallbacks 可从25.1.0 获得。 25.2.0 中引入的关于此 API 的唯一变化是,它是 became static,在此之前它只是一个公共内部类。这意味着为了使用你必须通过它的封闭实例来访问它,在这种情况下是FragmentManager

final FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.registerFragmentLifecycleCallbacks(fragmentManager.new FragmentLifecycleCallbacks() {
            @Override
            public void onFragmentPreAttached(FragmentManager fm, Fragment f, Context context) {
                super.onFragmentPreAttached(fm, f, context);
            }
            ...
            // all other callbacks
        }, true);

Eugen Pechanec's comment 中所述,Android-O 版本中的默认框架片段(即android.app.Fragment,不是来自支持包)will receive these changes

【讨论】:

猜你喜欢
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 2010-09-17
  • 2022-11-10
相关资源
最近更新 更多