我在默认的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
上的后退按钮时,我最终会完成活动M
和M
我尝试了不同类型的活动(MapActivities,活动,来自同一个包,来自不同的包),结果相同。
编辑:
finish();
方法 Intent I = new Intent(context, ActivityName.class);
context.startActivity(I);
EDIT2:
A
onPause
步骤中检查了isFinishing方法,结果为false
,因此无法完成有什么想法吗?有什么我想念的吗? 提前了解您的时间和想法!
答案 0 :(得分:0)
从活动M
转到活动A
时,请确保您不使用finish();
,因为它会从堆栈中删除当前活动。
答案 1 :(得分:0)
感谢@Stigi指出我正确的路径继续调试。 (能否以某种方式给你积分?)
在我的情况下android:noHistory="true"
设置在Manifest.xml
上,所以当我从活动M
回到A
时,它不在堆中,它看起来像它被关闭了。