2016-11-18 82 views
0

这里重启是活动导航堆栈: 活动A>活动B>活动Ç的Android活动,而不会干扰堆栈

活动C是web视图中,每个用户打开它时,我希望它重新打开,因为它是所以用户仍然可以看到之前在WebView中完成的操作。 所以这个活动开出信用证,旗FLAG_ACTIVITY_REORDER_TO_FRONT,并能够重新打开它,我不想去完成它,所以活动C的onBackPressed已经改变,并与下面的代码重新开始呼叫活动:

Intent intent = new Intent(this, Class.forName(callingActivity)); 
startActivity(intent); 

这是有效的(C可以重新开启,之前已完成),但问题是当这样做时,Activity C成为堆栈中Activity B的父级,所以它在B和C之间循环,我不能返回到Activity - 答: C> B> C> B> C> B ...

任何想法如何我可以正确处理此导航?

+0

你如何试图改变观点,即不工作?用硬背按钮? –

+0

是的,我总是回到后面的按钮 – Sloosh

+0

你可以在你的活动中覆盖onBackButton(),并直接指向你想要的Intente。你试过这个吗? –

回答

-1

再次在Activity C上使用super.onBackpressed()。 您应该使用标志FLAG_ACTIVITY_SINGLE_TOP而不是FLAG_ACTIVITY_REORDER_TO_FRONT,尝试一下并告诉我它是否以满意的方式工作。

如果你总是可以使用在onBackPressed意图,以保证您导航到正确的活动

+0

它不是一个答案...这是一个评论... –

+0

对不起,我知道如何在这里工作,但我需要信誉才能发表评论 –

+0

这不起作用,导航堆栈不会受到干扰,但活动C将作为新的活动打开并丢失以前的内容。 – Sloosh