只有以下两个 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/