回到之前的活动

时间:2013-06-18 23:38:32

标签: android android-intent android-activity back-button

我有2个活动:DetailsBuildingActivity和EditBuildingActivity。 DetailsActivity有一个按钮,可以转到EditBuildingActivity,来编辑建筑物的属性(如名称,大小等)。编辑和保存后,您将使用新调整的数据打开DetailsBuildingActivity。这样做几次来回,给我以下问题:

当连续做5次,但是我按下后退按钮时,我必须按10次才能进入上一个活动。 (10次 - 5次DetailsBuildingActivity和5次EditBuildingActivity)。有办法解决这个问题吗?我经常打算互相打开。

1 个答案:

答案 0 :(得分:0)

您需要使用活动堆栈。

当您在EditBuildingActivity中保存时,您需要调用finish()而不是创建新意图。

如果您希望DetailsBuildingActivity了解EditBuildingActivities状态,可以使用

startActivityForResult(intent,requestCode)来启动活动。

setResult()&& finish()完成已启动的活动

--- ANDROID DOCS

protected void onActivityResult(int requestCode,int resultCode,Intent data)

从以下版本开始:API Level 1当您启动的活动退出时调用,为您提供requestCode,启动它,返回resultCode,以及来自它的任何其他数据。如果活动显式返回,则不会返回任何结果,或者在操作期间崩溃,resultCode将为RESULT_CANCELED。当您的活动重新启动时,您将在onResume()之前立即收到此调用。 请记住,活动可以有多个实例,每次启动一个具有意图的新实例时,它们通常都会添加到活动堆栈的顶部。