我有一个带有2个片段的活动 Activity1 。一切正常,但我有一个问题:
当我退出当前活动时 - 活动1 - (不调用finish ()
)并转到另一个活动2 ,然后点击最后一个上的backButton活动我回到 Activity1 并执行此onResume
方法
onResume
活动1 代码:
@Override
protected void onResume () {
super.onResume ();
fragmentManager.beginTransaction ().replace (
R.id.my_frame_container,
fragmentFactory.getFragment (Fragment1)
).commit ();
}
onResume
Fragment1 代码:
@Override
public void onResume () {
super.onResume ();
Log.e ("onResume ", " Yes ");
}
从Documentation开始:当活动的onResume
方法也是这样时,会调用片段的onResume
方法。
但是在我的情况下,当我回到活动时,没有调用片段的onResume。
您是否知道如何在调用活动的onResume
时执行片段代码?谢谢。
答案 0 :(得分:0)
由于Fragment.onResume
与包含活动的Activity.onResume
相关联,因此当我们在片段之间切换时,此方法不会被调用,因此您需要使用OnBackStackChangedListener
作为自己调用遵循
getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {
public void onBackStackChanged() {
FragmentManager fm = getSupportFragmentManager();
if (fm != null) {
int bseCount = fm.getBackStackEntryCount();
if (bseCount > 0) {
Fragment fragment = fm.getFragments().get(bseCount - 1);
fragment.onResume();
}
}
}
});