android - 为什么这会耗尽内存?不应该发布 Activity 吗?

标签 android android-activity

只有以下两个 Activity 的项目将抛出 OutOfMemoryError。为什么会这样?当内存接近堆的限制时,不应该释放堆栈上较旧的 Activity 吗?

public class MainActivity extends Activity
{
    @Override
   protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startActivity(new Intent(getApplicationContext(), MemoryActivity.class));
    }
}

public class MemoryActivity extends Activity
{
    int[] testMem = new int[750000 * 3];

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startActivity(new Intent(getApplicationContext(), MainActivity.class));
    }

}

最佳答案

似乎共识是文档已过时或具有误导性,因为如果一个 Activity 的进程在前台,即使停止该 Activity 也不会被杀死。一个 Activity 将作为其整个进程被杀死的一部分被杀死。

请查看这个问题,Dianne Hackborn 的回答和讨论:Android app out of memory issues - tried everything and still at a loss

关于android - 为什么这会耗尽内存?不应该发布 Activity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721951/

相关文章:

具有半圆边缘的android按钮

java - "No Launcher activity found! and The launch will only sync the application package on the device!"是什么意思

java - 使用两个 TextView 将过滤器添加到 ListView

android - 为什么 Activity A在 Activity B被销毁时开始

android - 因内存不足而终止 Activity 后重新创建 fragment

android - 如何将 Android fragment 添加到 Activity 中?

android - 在 android 中按下时更改选项卡布局选项卡中的文本大小

android - ActionBar Dropdown Spinner 项目默认为第一项

java - 当我旋转 Android 手机时,Fragment 中的自定义 ListView 就会出现

android - Kotlin 编写了一个函数,可以检查可能的数十个值并使用 lambda 类型返回它们的非空值