首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动记忆管理

活动记忆管理
EN

Stack Overflow用户
提问于 2012-10-09 05:35:36
回答 1查看 73关注 0票数 0

我基本上有一个理论问题。假设我有两个活动A和B。我通过A调用活动B,使用意图,但没有完成A,所以基本上是onPause()。在完成一些任务后,我完成了活动B,所以现在活动A将出现在前面。我的问题是,在finish()方法之后会发生什么,因为有人告诉我,在finish()方法活动B之后,将在堆栈中,但不能访问。我感到困惑的是,如果发生这种情况,难道不是在浪费记忆吗?或者如果我错了,请以正确的方式指导我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-10 22:27:41

我不确定我是否百分之百理解你的问题。但让我们试试..。

启动ActivityA,任务中的活动堆栈如下所示:

代码语言:javascript
复制
ActivityA (shown to user)

现在,ActivityA启动了ActivityB,但没有完成它自己。暂停ActivityA,并向用户显示ActivityB。您的活动堆栈如下所示:

代码语言:javascript
复制
ActivityB (shown to user)
ActivityA (paused)

现在,用户在ActivityB中做一些事情,然后ActivityB调用自己的finish()。现在向用户显示ActivityA。您的活动堆栈如下所示:

代码语言:javascript
复制
ActivityA (shown to user)

此时,ActivityB已经完成,可以从系统中删除。Android在ActivityB上调用ActivityB,垃圾收集器最终会将其从堆中删除。这里没有“浪费记忆”。

如果我误解了你的问题,请发表评论,我会相应地修正我的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12793415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档