没有调用 onresume 的弹回堆栈
Posted
技术标签:
【中文标题】没有调用 onresume 的弹回堆栈【英文标题】:Pop back stack without onresume called 【发布时间】:2014-12-10 14:07:21 【问题描述】:我有活动 a。然后我将 b 放入 backsatck 并显示它; 我想调用 c 以便不再调用 a 但是我想从 BackStack 中弹出 B 以便从 C 返回我希望它返回到 A。 这是场景: A->B C 被称为:A->C C 关闭 onback 按下:返回到 A 但是,当我从 backstack 中弹出 B(为了用 C 替换它)片段 A onResume 调用并且不允许 B 正常显示。 我也用过:
fragmentManager.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE);`
但这并不能解决问题。 这是 switchFragments 的代码:
fragmentManager.popBackStack(null,
FragmentManager.POP_BACK_STACK_INCLUSIVE);
if (fragment != null)
FragmentTransaction transaction = fragmentManager
.beginTransaction();
transaction.replace(R.id.content_frame, fragment, tag);
// Only ArticlDetailFragment is added to the back stack.
if (!(fragment instanceof HomeFragment)
/* && isItNotification == false */)
if (debug == 1)
Log.v("DEBUG_TAG", "MainAcitivy switchContent2");
transaction.addToBackStack(tag);
transaction.commit();
contentFragment = fragment;
HomeFragment 就是这里所说的 A。
【问题讨论】:
发布你如何将片段 b 放入堆栈 你解决过这个问题吗? 你找到解决办法了吗? 【参考方案1】:不要替换片段,而是将它们添加到后台堆栈中:
getFragmentManager().beginTransaction().add(R.id.content_frame, fragment).addToBackStack(null).commit();
【讨论】:
这个 addToBackStack(null) 有什么作用?我的意思是 addToBackStack(TAG) 有什么不同?以上是关于没有调用 onresume 的弹回堆栈的主要内容,如果未能解决你的问题,请参考以下文章
使用 ViewPager 滑动时,片段没有调用 OnResume()
iOS 上的 Flutter FCM 不调用 onMessage 和 onResume