У меня есть приложение для Android, которое начинается с класса ItemListActivity, и в методе onCreate() я проверяю, вошел ли пользователь в приложение или нет (на основе сохраненного значения в sharedPreferences), и если он не вошел в систему, я меняю активность на активность content_main:
if (!SharedPreferencesUtils.sharedPrefHasString(getApplicationContext(),userIDKey,null)){
Intent intent = new Intent(getApplicationContext(),content_main.class);
startActivity(intent);
finish();
return;
}
и в активности content_main у меня есть просто 2 EditText для получения электронной почты и пароля пользователей.
Все работает нормально, пока я не нажму на любой Edittext, затем он начинает истощать память и вылетает с этим журналом:
java.lang.OutOfMemoryError: Failed to allocate a 35469582 byte allocation with 16769200 free bytes and 24MB until OOM.
Я занимаюсь этим пару дней и читал, что это происходит, когда вы используете edittext в relativeLayout, поэтому я изменил макет на LinearLayout, и это тоже не сработало. Мое устройство - Samsung galaxy s5, версия Android - 6.0.1.
И я продолжаю получать эту ошибку, когда нажимаю на любой EditText.
А вот мой вид памяти профилировщика Android:
Есть идеи, что вызывает эту проблему?
В этой строке Intent intent = new Intent(getApplicationContext(),content_main.class); удалите getApplicationContext() и вместо этого запишите this и никогда в будущем не передавайте ApplicationContext() в намерение.
@ Devit951 Спасибо за совет. Но, боюсь, это не имело никакого значения.




Я предположил, что это может быть проблемой, поэтому удалил все изображения (есть только одно для логотипа signUp и фон для edittext). Но это не меняет результата.