后退按钮完成父项活动

时间:2012-12-27 10:19:25

标签: android android-activity android-lifecycle

我在默认的Android生命周期中遇到了一些问题。

我的应用有Activity(我们称之为A)和MapActivity(我们称之为M

活动A有一个AsyncTask来检索网址中的图片(EDIT3:这似乎不影响我的问题,但我提到它是为了提供完整的信息) 而MapActivity M目前是一张空地图,没有配置或修改。

我的用例如下:

我正常浏览我的应用,最终以A开始没有错误。 当我从M开始A时,一切都按预期工作,但当我返回时,活动A已经完成。

Log.d这两个活动的生命周期中的每一步都发现了以下内容:

开始活动A

onCreate  - A
onStart   - A
onResume  - A

开始活动M

onPause   - A
onCreate  - M
onStart   - M
onResume  - M
onStop    - A

返回活动M

onPause   - M
onDestroy - A
onStop    - M
onDestroy - M

所以当我按下A上的后退按钮时,我最终会完成活动MM

我尝试了不同类型的活动(MapActivities,活动,来自同一个包,来自不同的包),结果相同。

编辑:

  • 我不在任何地方使用finish();方法
  • 我的活动是从下面的代码开始的:

Intent I = new Intent(context, ActivityName.class); context.startActivity(I);

EDIT2:

  • 在活动A onPause步骤中检查了isFinishing方法,结果为false,因此无法完成

有什么想法吗?有什么我想念的吗? 提前了解您的时间和想法!

2 个答案:

答案 0 :(得分:0)

从活动M转到活动A时,请确保您不使用finish();,因为它会从堆栈中删除当前活动。

答案 1 :(得分:0)

感谢@Stigi指出我正确的路径继续调试。 (能否以某种方式给你积分?)

在我的情况下android:noHistory="true"设置在Manifest.xml上,所以当我从活动M回到A时,它不在堆中,它看起来像它被关闭了。