首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android后台堆栈和内存回收

Android后台堆栈和内存回收
EN

Stack Overflow用户
提问于 2013-03-08 17:21:24
回答 2查看 723关注 0票数 3

我正在学习android应用程序开发。我正在阅读有关该系统如何管理活动的文章。

通过阅读文档。这是混乱。

  1. 我创建了应用程序A(从主屏幕)与3个活动A1,A2,A3 -这是任务A
  2. 我创建了应用程序B(从主屏幕)与3个活动B1,B2,B3这是任务B,其中A1和B1分别是在应用程序A和B的堆栈顶部。

根据文档系统只推送和弹出活动(没有重新排序,这对堆栈来说是有意义的),但是它声明系统可以在内存不足的情况下回收内存。而选择哪些活动去删除系统总是选择背景中的活动。所以说它的移除活性A3。但是A3在堆栈的底部。如果不对应用程序A的堆栈进行重新排序,它如何删除?

我希望我的问题是清楚的。

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-08 17:31:40

当活动从内存中移除时,后台堆栈不会更改。

但是,当用户单击back按钮并返回已被回收的活动时,您没有在onSaveInstanceState()中专门保存的任何状态(以及从onCreate()中的savedInstanceBundle参数重新加载)都将丢失。

票数 1
EN

Stack Overflow用户

发布于 2013-03-08 17:44:37

正如您正确指出的那样,Android系统不需要重新排序堆栈。它遵循过程生命周期,其中包含活动的进程被终止,而不是堆栈上的单个活动。请记住,默认情况下,每个应用程序都是维护活动堆栈的单独进程。因此,应用程序A和应用程序B的活动堆栈将是独立的和独立的。

例如,Task处于A1、A2和A3活动的后台。任务A是一个过程。当android需要回收内存时,它将终止包含所有活动A1、A2、A3的process。因此,现在任务A中哪些活动位于堆栈的顶部并不重要。

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

https://stackoverflow.com/questions/15299726

复制
相关文章

相似问题

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