在我的android应用程序中,我首先搜索一个咖啡馆。当用户选择一个咖啡厅的下一个活动将显示更多关于它的细节。然后用户可以查看咖啡馆的地图。当用户点击完成按钮时,我需要将用户重定向到第一个活动的搜索结果。那我该怎么做?调用finish()方法只会关闭当前的活动。如何返回到Android的第三个活动?
在此先感谢!
在我的android应用程序中,我首先搜索一个咖啡馆。当用户选择一个咖啡厅的下一个活动将显示更多关于它的细节。然后用户可以查看咖啡馆的地图。当用户点击完成按钮时,我需要将用户重定向到第一个活动的搜索结果。那我该怎么做?调用finish()方法只会关闭当前的活动。如何返回到Android的第三个活动?
在此先感谢!
,你继续,你可以使用在每一个活动结束(),也可以使用该标志FLAG_ACTIVITY_CLEAR_TOP
开始你的第一个活动,它会清除您的第一个活动的所有顶级的活动,它会带给你的第一个活动上top.Use这样的:
Intent intent = new Intent(this, yourFirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
启动与thiss标志,活动Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP
清除除你的第一个活动以外的所有内容,这应该工作得很好。
根据Android Application Developer Forum你应该通过以下方式开展这项活动: -
startActivity(intent);
为了使用户仍然可以恢复到以前的活动B中的一个不应该使用Intent.FLAG_ACTIVITY_CLEAR_TOP
相反活动B应该使用startActivityForResult(... C ...) 同样的活动B应该使用onActivityResult()检查结果,并在活动C中单击完成时完成。但是如果仅在活动C中单击返回那么活动B将正常显示。
//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);
请记住,一旦您使用了CLEAR TOP,您就无法重新启动所有在其上的活动。谢谢 – SALMAN