【问题标题】:How do I monitor a fragment change?如何监控片段更改?
【发布时间】:2019-09-27 08:37:02
【问题描述】:

在开发 SDK 时,我只能在 Application.class 中实现代码。 现在我知道了 Android API:

application.registerActivityLifecycleCallbacks(activityLifecycleCallbacks)

fragmentActivity.getSupportFragmentManager().registerFragmentLifecycleCallbacks(fragmentLifecycleCallbacks, true)

但它不起作用,因为当我切换到不同的片段时不会调用onFragmentResumed

【问题讨论】:

  • recursive 尝试传递 true。
  • @Jaymin 谢谢~几分钟前我试过了。遗憾的是,onFragmentPaused()等回调函数只会在对应的fragment第一次显示时调用。
  • 它将被调用,因为系统调用此方法作为用户离开片段的第一个指示。

标签: android fragment android-fragmentactivity


【解决方案1】:

在 kotlin 中,像这样创建一个类

object YourClass: FragmentManager.FragmentLifecycleCallbacks(), Application.ActivityLifecycleCallbacks {}

在应用程序类中将以下内容放入 onCreate()

registerActivityLifecycleCallbacks(YourClass)

在 YourClass 中放入以下内容

override fun onActivityResumed(activity: Activity){(activity as BaseActivity).supportFragmentManager.registerFragmentLifecycleCallbacks(YourClass, true)}

BaseActivity 是实现 AppCompatActivity() 的自定义类

现在,YourClass 将自己挂钩到您的 android 应用程序中的所有活动中,并且每次都会收到您应用程序中所有片段的 onFragmentResumed() 回调。

【讨论】:

    猜你喜欢
    • 2023-02-14
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多