Android 后退按钮完成父活动
我对默认的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在这两个活动的生命周期中的每一步都发现了以下内容: 启
活动
(我们称之为A
)和一个MapActivity
(我们称之为M
)
活动A
有一个AsyncTask
从URL检索图像(EDIT3:这似乎不影响我的问题,但我提到它是为了提供完整信息)
MapActivityM
当前是一个空映射,没有进行任何配置或修改
我的用例如下所示:
我正常浏览我的应用程序,最后启动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
上设置的,所以当我从ActivityM
返回到A
时,它不在堆上,看起来好像已经关闭了。你对活动或意图标志使用了一些启动模式吗?你正在调用finish()代码>在A
上?不,我不使用finish()代码>nor标志。这个信息现在在问题帖上,谢谢!您是否在活动中重写onBackPressed()方法?您还可以检查活动A
是否不是作为singleInstance
启动的(您可以在清单中进行检查),这不应该是这样,但我想它仍然值得检查,以防万一;)呵呵,我想没有办法给我任何分数,但我仍然很乐意帮助:)顺便说一句,接受你自己的答案,这样其他人就会看到如何解决类似的问题,干杯:)