使用startActivity启动浏览器后,Backstack搞砸了

时间:2014-09-27 00:03:03

标签: android android-intent android-fragments

目前我有这个设置:

活动A是主要的

活动A开始活动B

B为自己添加一个片段: getFragmentManager().beginTransaction().add(android.R.id.content, new FirstFragment()).commit();

然后在交互之后,FirstFragmentSecondFragment替换,并被添加到后台堆栈: getFragmentManager().beginTransaction().replace(android.R.id.content, new SecondFragment()).addToBackStack(null).commit();

如果用户点击此Fragment,则启动浏览器:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(licenceInfo[2].toString()));
browserIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(browserIntent);

但是当用户使用后退按钮从浏览器返回我的应用程序后,它就搞砸了。 SecondFragmentdrawn on FirstFragment。 :S如果我点击后退,SecondFragment将不再显示。最后,一件非常恼人的事情:当返回活动A时,会调用其onCreate方法。

如果我没有从SecondFragment启动浏览器,一切都很好。我错过了什么?谢谢我提前!

1 个答案:

答案 0 :(得分:0)

好的,我想这是我ROM的失败。我使用自定义的KitKat ROM,它可以与我的旧HTC Sensation设备一起使用。该ROM产生上述行为。我刚尝试使用Android 4.2手机和4.4模拟器,两者都正常工作......