ich auf einer Xamarin.Forms Anwendung arbeite,Image nicht entsorgt und die Schaffung von OutOfMemoryException
Innerhalb eines meiner Seite habe ich mehrere benutzerdefinierte StackLayout (ActivityTypeView) ein Bild enthält. Diese StackLayout-Objekte werden dynamisch in einem Raster auf meiner Seite erstellt und hinzugefügt.
In meinem ActivityTypeView stelle ich die Bildquelle wie folgt:
WorkIcon.Source = ImageSource.FromFile("disable.png");
(Mein Bild ist in meinem ziehbar Ordner gespeichert)
Das Problem ist, dass, wenn ich auf eine andere Seite gehen und kommen wieder mehrere Ich komme irgendwann immer mit einer OutOfMemory Exception, wenn ich versuche, das Image zu laden.
Ich denke irgendwie meine ImageSource wird nicht zerstört/Disposed, wenn ich Seite ändere. So wird es immer, nachdem ich dieselbe Seite mehrere Male neu geladen habe, mit diesem Fehler enden.
Ich würde gerne wissen, wie man mit dieser Situation umgeht. Wie kann ich die Ressource ordnungsgemäß und wann entsorgen?
Mit FFImageLoadingLibrary meinen Absturz behoben! Ich wollte den Xamarin-Profiler verwenden, um zu sehen, was mit dem Speicher passiert, aber ich besitze kein Visual Studio Enterprise, um meine App zu überwachen. Wissen Sie, ob der Speicher irgendwann frei ist? Oder die Bibliothek nur das Bild zwischenspeichern, während die App läuft? –
@LucienMoor Freut mich zu hören! In meinem Fall lädt die Bibliothek das Bild einmal in den Speicher und verwendet es wieder und wieder. Auf diese Weise müssen wir uns keine Sorgen machen, dass die Erinnerung freigegeben wird. Sie werden feststellen, dass sich die Verwendung der Bibliothek auf lange Sicht wirklich lohnt. – hankide