gpt4 book ai didi

android - 为什么应用程序及其资源在退出后仍保留在内存中?

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:24 27 4
gpt4 key购买 nike

我有一个简单的 Hello World 应用程序

public class TestLeaksOnFinish extends Activity  
{
static int ctr = 0;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView t = new TextView(this);
t.setText("Hello World! "+ctr++);
setContentView(t);
}
}

当我多次运行这个时,每次都按 BACK,我看到 ctr 每次都增加,表明 Activity 在 BACK 后没有完全杀死。

按下 BACK 后将 HPROF 文件转储到 DDMS 中也证实了这一点。
该文件仍然包含我的 TestLeaksOnFinish Activity 类。

谁能解释一下为什么这个 Activity 在按下 BACK 后仍然存在于堆转储中?

当我列出传入的引用时,我得到以下信息 screenshot from DDMS

最佳答案

在 Android 中, Activity 不会被杀死,它们只会被移到后台。这就是 Android 的工作方式,你不能杀死应用程序,或者基本上没有如你所知退出。它只会留在后台和内存中。

当内存不足时,系统会根据系统赋予每个应用程序本身的优先级开始终止应用程序进程。

关于android - 为什么应用程序及其资源在退出后仍保留在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com