我基本上有一个理论问题。假设我有两个活动A和B。我通过A调用活动B,使用意图,但没有完成A,所以基本上是onPause()。在完成一些任务后,我完成了活动B,所以现在活动A将出现在前面。我的问题是,在finish()方法之后会发生什么,因为有人告诉我,在finish()方法活动B之后,将在堆栈中,但不能访问。我感到困惑的是,如果发生这种情况,难道不是在浪费记忆吗?或者如果我错了,请以正确的方式指导我。
发布于 2012-10-10 22:27:41
我不确定我是否百分之百理解你的问题。但让我们试试..。
启动ActivityA,任务中的活动堆栈如下所示:
ActivityA (shown to user)现在,ActivityA启动了ActivityB,但没有完成它自己。暂停ActivityA,并向用户显示ActivityB。您的活动堆栈如下所示:
ActivityB (shown to user)
ActivityA (paused)现在,用户在ActivityB中做一些事情,然后ActivityB调用自己的finish()。现在向用户显示ActivityA。您的活动堆栈如下所示:
ActivityA (shown to user)此时,ActivityB已经完成,可以从系统中删除。Android在ActivityB上调用ActivityB,垃圾收集器最终会将其从堆中删除。这里没有“浪费记忆”。
如果我误解了你的问题,请发表评论,我会相应地修正我的答案。
https://stackoverflow.com/questions/12793415
复制相似问题