Hallo Leute,
ich hänge schon länger an einem Problem, das mir mittlerweile Kopfschmerzen bereitet.
In meiner App ist es in einer Activity möglich ein Bild entweder aus der Gallerie auszuwählen oder per Kamera ein neues aufzunehmen. Das Foto wird auf Bildschirmgröße skaliert und in einem festen Ordner gespeichert. Zusätzlich wird es noch in einem kleinen Vorschau-ImageView angezeigt. Der Nutzer kann noch diverse Einstellungen tätigen und dann per Klick auf "fertig" zur nächsten Activity wechseln, in der das Bild geladen wird und als Hintergrundbild der gesamten Activity angezeigt wird. Daneben gibt es noch eine weitere Activity, die das gewählt Bild ebenfalls als Hintergrund anzeigt.
Am Anfang hatte ich noch alle paar klicks einen OutOfMemory Error, da Bilder jeder Größe geladen wurden und nicht skaliert wurden, das habe ich mittlerweile behoben.
Trotzdem bekomme ich, nachdem ich in allen Activities unterwegs war und in der ersten wieder ein neues Hintergrundbild wählen möchte, immer wieder einen OutOfMemoryError.
Jetzt meine Frage: Kann es sein, dass die Activities die Bilder jeweils in den Speicher laden aber beim Verlassen nicht mehr freigeben? Das wäre meine einzige Erklärung, da es beim ersten Versuch immer klappt. Erst wenn ich die App eine Weile nutze, kommt der Fehler.
Mein Ansatz war, das Bitmap nach dem Zuweisen zum imageView auf null zu setzen, um dem Garbage Collector zu signalisieren, dass er aufräumen darf, das scheint aber nichts zu bringen.
Ich habe die Exceptions abgefangen, damit die App nicht abstürzt. Wenn ich jetzt minimiere und den Cache der Anwendung leere, geht alles wieder.
Gibt es eine Möglichkeit den Cache der App während der Laufzeit zu leeren?
Ich hoffe, das Problem ausreichend erklärt zu haben
Vielleicht kann ja jemand helfen, würde mich sehr freuen!