2

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

提前致谢 !

4

5 回答 5

11

您可以在进行时在每个活动中使用finish(),或者您可以使用此标志开始您的第一个活动,FLAG_ACTIVITY_CLEAR_TOP它将清除您第一个活动的所有顶级活动,并将您的第一个活动置于顶部。像这样使用:

Intent intent = new Intent(this, yourFirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
于 2011-08-26T09:30:20.560 回答
2

使用此标志启动该活动Intent.FLAG_ACTIVITY_CLEAR_TOP

参考: 安卓文档

于 2011-08-26T09:29:17.063 回答
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);
于 2011-12-02T12:33:15.660 回答
0
   Intent.FLAG_ACTIVITY_CLEAR_TOP 

清除除您的第一个活动之外的所有内容,这应该可以很好地工作。

根据Android 应用程序开发者论坛,您应该通过以下方式启动此活动:-

 startActivity(intent);
于 2011-08-26T10:32:54.187 回答
0

为了用户仍然可以返回到先前的活动 B,不应使用 Intent.FLAG_ACTIVITY_CLEAR_TOP

相反,活动 B 应该使用 startActivityForResult(...C...) 并且相同的活动 B 应该使用 onActivityResult() 检查结果,如果在活动 C 中单击了 DONE,则完成。但是如果在活动 C 中单击了返回然后活动 B 将正常显示。

于 2011-08-26T12:04:59.647 回答