FragmentActivity.onResume()
javadoc:
将onResume()发送到片段。请注意,为了更好地与平台的旧版本进行互操作,在此调用时,不会恢复附加到活动的片段。这意味着在某些情况下,仍可以保存先前的状态,不允许修改状态的片段事务。要正确地与处于正确状态的片段进行交互,您应该覆盖onResumeFragments()。
FragmentActivity.onResumeFragments()
javadoc:
这是onResume()的片段定向版本,您可以覆盖该版本以在其片段恢复的同一点执行Activity中的操作。一定要经常打电话给超级班。
以上是否意味着平台保证:
onResume()
和时,FragmentActivity.onResume()
未被调用)
执行onResume()
时FragmentActivity.onResumeFragments()
被调用)?如果没有,开发商如何正确使用并对上述内容保持警惕?
答案 0 :(得分:17)
会onResume()
被调用吗?
是的,仍会调用FragmentActivity.onResume()
(与Activity.onResume()
相同的上下文)。
即使您覆盖FragmentActivity.onResumeFragments()
(来自FragmentActivity
的其他方法,它知道它包含Fragments
)。
onResume()
和onResumeFragments()
有什么区别?
FragmentActivity.onResumeFragments()
是FragmentActivity
关于当它包含的Fragments
正在恢复时的回调,这与时的{em>不同{1}}恢复。
这是onResume()的片段定向版本,您可以覆盖该版本以在其片段恢复的同一点执行Activity中的操作。一定要经常打电话给超级班。
何时使用哪种方法?
如果您使用的是support-v4库和Activity
,请尝试在FragmentActivity
实施中始终使用onResumeFragments()
代替onResume()
。
FragmentActivity#onResume() documentation:
要正确地与处于正确状态的片段进行交互,您应该覆盖onResumeFragments()。
差异很微妙,请参阅https://github.com/xxv/android-lifecycle/issues/8:
使用v4 compat库时,onResume()应该用于普通的Activity和onResumeFragments()。 只有在应用程序等待FragmentManager完成初始FragmentTransaction时才需要这样做。