У меня есть проблема в некоторых устройствах, таких как Galaxy Nexus, где, если вы продолжаете открывать действия, вы попадаете из-за ошибки памяти.Я думал, что у меня есть некоторые утечки памяти, которые препятствуют тому, чтобы действия были собраны, но я не мог найти это.Итак, я написал это небольшое задание (исключительно для целей тестирования).
public class Test extends Activity {
private byte[] imageData = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button iv = new Button(this);
imageData = new byte[1024 * 1024 * 2];
iv.setText("Open");
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Test.this, Test.class));
}
});
setContentView(iv);
}
}
Итак, в основном, оно выделяет 2 МБ памяти, и вы можете открыть другой экземпляр того же действия.На Galaxy S и Kindle Fire, если вы продолжаете открывать, использование памяти увеличивается до определенной точки, а затем начинает разрушать старые действия для новых действий.
Однако в Galaxy Nexus он просто увеличивается до 64 МБ и вылетает с ошибкой нехватки памяти.
Так что я не знаю об управлении памятью Android или это ошибка нанекоторые устройства?Если это ошибка, как я могу обойти ее?
Спасибо.