Android 后退按钮完成父活动

Android 后退按钮完成父活动,android,android-activity,android-lifecycle,Android,Android Activity,Android Lifecycle,我对默认的Android生命周期有一些问题 我的应用程序有一个活动(我们称之为A)和一个MapActivity(我们称之为M) 活动A有一个AsyncTask从URL检索图像(EDIT3:这似乎不影响我的问题,但我提到它是为了提供完整信息) MapActivityM当前是一个空映射,没有进行任何配置或修改 我的用例如下所示: 我正常浏览我的应用程序,最后启动A,没有错误。 当我从A开始M时,一切正常,但当我返回时,活动A已经完成 我Log.d在这两个活动的生命周期中的每一步都发现了以下内容: 启

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

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

活动
A
有一个
AsyncTask
从URL检索图像(EDIT3:这似乎不影响我的问题,但我提到它是为了提供完整信息) MapActivity
M
当前是一个空映射,没有进行任何配置或修改

我的用例如下所示:

我正常浏览我的应用程序,最后启动
A
,没有错误。 当我从
A
开始
M
时,一切正常,但当我返回时,活动
A
已经完成

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

启动活动
A

onCreate  - A
onStart   - A
onResume  - A
启动活动
M

onPause   - A
onCreate  - M
onStart   - M
onResume  - M
onStop    - A
onPause   - M
onDestroy - A
onStop    - M
onDestroy - M
返回活动
M

onPause   - A
onCreate  - M
onStart   - M
onResume  - M
onStop    - A
onPause   - M
onDestroy - A
onStop    - M
onDestroy - M
因此,当我按下
M
上的后退按钮时,我结束了活动
A
M

onPause   - A
onCreate  - M
onStart   - M
onResume  - M
onStop    - A
onPause   - M
onDestroy - A
onStop    - M
onDestroy - M
我尝试了不同类型的活动(MapActivities,Activities,来自同一个包,来自不同的包),结果完全一样

编辑:

  • 我不使用
    finish()方法任意位置
  • 我的活动以以下代码开始:
Intent I=newintent(上下文,ActivityName.class)
context.startActivity(I)

编辑2:

  • 已检查活动
    A
    onPause
    步骤上的方法,结果为
    false
    ,因此不支持完成
有什么想法吗?我有什么遗漏吗?
提前谢谢你的时间和想法

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

感谢@Stigi为我指明了继续调试的正确路径。(我能给你打分吗?)


在我的例子中,
android:noHistory=“true”
是在
Manifest.xml
上设置的,所以当我从Activity
M
返回到
A
时,它不在堆上,看起来好像已经关闭了。

你对活动或意图标志使用了一些启动模式吗?你正在调用
finish()
A
上?不,我不使用
finish()nor标志。这个信息现在在问题帖上,谢谢!您是否在活动中重写onBackPressed()方法?您还可以检查活动
A
是否不是作为
singleInstance
启动的(您可以在清单中进行检查),这不应该是这样,但我想它仍然值得检查,以防万一;)呵呵,我想没有办法给我任何分数,但我仍然很乐意帮助:)顺便说一句,接受你自己的答案,这样其他人就会看到如何解决类似的问题,干杯:)