В настоящее время я занимаюсь разработкой простого приложения для социальных сетей, с которым у меня возникают некоторые проблемы. Мое приложение может отлично работать, если бы не OOM (Недостаточно памяти). Через logcat я понял, почему я получал это сообщение и почему мое приложение не отображало изображения после некоторого тестирования.
Я запустил Android Profiler в своем приложении, чтобы посмотреть, что происходит, и начал переключаться между действиями, создавать посты и загружать некоторые предыдущие посты. Я заметил, что моя память неуклонно растет, и около 500 МБ мое приложение перестало отображать изображения.
Моя память не уменьшается, и каждый раз, когда я загружаю изображение, оно значительно увеличивается. Я использую фрагменты для навигации по каналу, который загружает сообщение пользователя, и у меня также есть кнопка настроек, которая приведет пользователя к новым действиям по настройке. Если объем памяти достигает 500 МБ, все изображения на каждом фрагменте и в настройках не будут загружены.
Я использую хранилище Firebase для получения изображений. Я использую Firebase, чтобы получить текст также для имени пользователя, электронной почты и т. Д., И кажется, что он отлично загружается.
Кто-нибудь знает, как решить эту проблему? требуется всего около минуты активности, чтобы достичь 500 МБ
Вот как я загружаю свои Изображения в упражнении настройки. В упражнении, где я получаю пост-фид, используются классы модулей, поэтому я не буду вставлять сюда весь этот код, и я уже проверил его. Изображения в обоих действиях всегда будут загружаться одинаково. В любом случае, вот мои настройки для получения изображения профиля,
eventListener = UserRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild("username")){
String Username = dataSnapshot.child("username").getValue().toString();
username.setText(Username);
}
if (dataSnapshot.hasChild("profileimage")){
String image = dataSnapshot.child("profileimage").getValue().toString();
Picasso.get().load(image).placeholder(R.drawable.user_circle2).into(profileImage);
endListener();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private void endListener() {
UserRef.removeEventListener(eventListener);
}
Пожалуйста, кто-нибудь может сказать мне, как я должен это исправить. Сжатие изображения? Вывоз мусора? Мне нужен совет, спасибо.