【问题标题】:Android Fragment onPause event called late with FragmentPagerAdapter使用 FragmentPagerAdapter 延迟调用 Android Fragment onPause 事件
【发布时间】:2013-09-11 13:58:43
【问题描述】:

我在一个管理 4 个片段的活动中有一个 FragmentPagerAdapter,一切正常,但是在加载新片段后不会立即调用每个片段的 onPause 和 onDestroyView 事件,即:

FragmentA --> FragmentB --> FragmentC --> FragmentD

FragmentA 的 onPause/onDestroyView 事件在我传递给 FragmentC 时被调用,全局这些事件在 2 步后被调用。

我错过了什么吗?

谢谢。

【问题讨论】:

    标签: android android-fragments onpause fragmentpageradapter fragment-lifecycle


    【解决方案1】:

    FragmentPager 将在当前可查看的片段之前和之后创建(有效地保留在内存中)1 个屏幕外页面,这是一个保持寻呼机响应滑动的功能。因此,当片段过渡到 2 次滑动/页面时,它会被破坏,因此会延迟。

    This answer 描述了如何覆盖这个默认值

    【讨论】:

    • 谢谢,但是使用setOffscreenPageLimit()不能为0,而且默认值,即使设置为1也不能解决问题,得另寻解决方案。
    • 不同意投反对票,因为这个答案解释了延迟,这就是问题所在。
    • @Houssem 如果触发 onCreate/onPause/onDestroy 的延迟不可接受,则不应使用片段视图寻呼机。但是,如果只是在滑动点寻找触发事件,那么应该使用 setOnPageChangeListener
    • 很抱歉投了反对票,你有理由。我花了几个小时寻找解决方案,但一无所获。事实上,当这些片段被滑动时,我必须取消这些片段中的一些异步任务,这就是为什么我需要 onPause 或 onDestroyView 才能在没有延迟的情况下执行,如果您知道摆脱这个问题的方法,请提供帮助。
    猜你喜欢
    • 2013-03-05
    • 2012-11-14
    • 1970-01-01
    • 2011-08-20
    • 2016-03-22
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多