2

我对默认的 Android 生命周期有一些问题。

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

ActivityA可以AsyncTask从 URL 中检索图像(EDIT3:这似乎不会影响我的问题,但我提到它是为了提供完整信息),并且 MapActivityM目前是一个空地图,没有进行任何配置或修改。

我的用例如下:

我正常浏览我的应用程序,最终开始A时没有错误。当我MA一切按预期开始时,但当我回去时,活动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

所以我最终完成了活动AM当我按下后退按钮时M

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

编辑:

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

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

编辑2:

  • 在Activity这一步检查了isFinishingA onPause方法,结果是false所以不应该是finishing

任何的想法?有什么我想念的吗?提前感谢您的时间和想法!

4

2 回答 2

0

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

于 2012-12-27T10:29:36.290 回答
0

感谢@Stigi,他为我指出了继续调试的正确道路。(我可以给你分数吗?)

在我的情况下android:noHistory="true"Manifest.xml当我从 Activity 回来时MA它不在堆上,看起来它已经关闭了。

于 2012-12-27T14:03:41.077 回答