在我的应用程序中,有一些活动使用高分辨率PNG进行图形化处理。我有OutOfMemoryError
错误,并通过将android:largeHeap="true"
添加到我的清单文件来修复它。为什么ativity仍然使用称为finish()的RAM?
在存储器监视器,第二activiy增加100+的RAM MB和不降低altought称为finish()
函数它。以下是开始第三个活动的代码:
public void start_game(View v){
header.setText("Loading...");
Intent i = new Intent(this,game.class);
i.putExtra("episode",Integer.parseInt(v.getTag().toString()));
i.putExtra("online",false);
startActivity(i);
finish();
}
如何从UI和RAM中完全删除活动?
第一件事'android:largeHeap =“true”'只是一个绷带,并不是OOM的真正答案,因为它没有真正解决实际的OOM问题,这是代码的不好实现。第二个'finish()'不会立即释放该活动中的所有内容,线程可能仍然保存该活动引用并消耗内存。 :) – Enzokie