2

在我的android应用程序中,我首先搜索一个咖啡馆。当用户选择一个咖啡厅的下一个活动将显示更多关于它的细节。然后用户可以查看咖啡馆的地图。当用户点击完成按钮时,我需要将用户重定向到第一个活动的搜索结果。那我该怎么做?调用finish()方法只会关闭当前的活动。如何返回到Android的第三个活动?

在此先感谢!

回答

11

,你继续,你可以使用在每一个活动结束(),也可以使用该标志FLAG_ACTIVITY_CLEAR_TOP开始你的第一个活动,它会清除您的第一个活动的所有顶级的活动,它会带给你的第一个活动上top.Use这样的:

Intent intent = new Intent(this, yourFirstActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
0
Intent.FLAG_ACTIVITY_CLEAR_TOP 

清除除你的第一个活动以外的所有内容,这应该工作得很好。

根据Android Application Developer Forum你应该通过以下方式开展这项活动: -

startActivity(intent); 
0

为了使用户仍然可以恢复到以前的活动B中的一个不应该使用Intent.FLAG_ACTIVITY_CLEAR_TOP

相反活动B应该使用startActivityForResult(... C ...) 同样的活动B应该使用onActivityResult()检查结果,并在活动C中单击完成时完成。但是如果仅在活动C中单击返回那么活动B将正常显示。

2
//DOES NOT FINISH ALL ACTIVITY 

Intent intent=new Intent(); 
intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 


//FINISH ALL ACTIVITY WHICH IS IN STACK ABOVE TARGET ACTIVITY 

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
+2

请记住,一旦您使用了CLEAR TOP,您就无法重新启动所有在其上的活动。谢谢 – SALMAN

相关问题