说我有2个片段:A和B
片段A位于顶部。现在,我添加片段B,将A保持在后台。
现在按下后退按钮时,B被移除,A位于顶部。
A中是否有任何回调方法在此时被调用?
注意 :onResume与活动紧密绑定,因此不会被调用。只有在调用activity的onResume()时才会调用片段的onResume()。
答案 0 :(得分:1)
很抱歉,但是没有回调,因为popToBackStack仅在替换事务而不是添加时才重新创建片段。
答案 1 :(得分:0)
您可能希望将OnBackStackChangedListener添加到fragment manager
并监控BackStackEntryCount
getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {
public void onBackStackChanged() {
Log.i(TAG, "back stack changed ");
int backCount = getSupportFragmentManager().getBackStackEntryCount();
}
}
});
获得此触发器后,您可以按照本文Deliver a Message to a Fragment中的说明将activity
传递给fragment A
,或者Observer
中可能有Fragment
在主Observable
Activity
答案 2 :(得分:0)
再次显示片段时调用onViewStateRestored()。