假设我有 2 个片段:A 和 B
片段 A 在顶部。现在,我添加片段 B,将 A 保留在后台堆栈中。
现在当按下后退按钮时,B 被移除并且 A 出现在顶部。
A 中是否有任何回调方法在此时被调用?
注意:onResume 与活动密切相关,因此不会被调用。只有在调用活动的 onResume() 时才会调用 Fragment 的 onResume()。
假设我有 2 个片段:A 和 B
片段 A 在顶部。现在,我添加片段 B,将 A 保留在后台堆栈中。
现在当按下后退按钮时,B 被移除并且 A 出现在顶部。
A 中是否有任何回调方法在此时被调用?
注意:onResume 与活动密切相关,因此不会被调用。只有在调用活动的 onResume() 时才会调用 Fragment 的 onResume()。
抱歉,没有回调,因为 popToBackStack 仅在替换事务而不是添加的情况下才会重新创建片段。
您可能希望将OnBackStackChangedListener添加到您的fragment manager
和监视器BackStackEntryCount
getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {
public void onBackStackChanged() {
Log.i(TAG, "back stack changed ");
int backCount = getSupportFragmentManager().getBackStackEntryCount();
}
}
});
获得此触发器后,您可以按照本文所述将消息传递activity
到fragment A
Observer
Fragment
Observable
Activity
再次显示片段时调用 onViewStateRestored()。