私は、グライドでImageViewsの画像を読み込むアクティビティを持っています。ここに私のグライドコードのサンプルは次のとおりです。 Glide.with(ImageVOne.getContext()) .LOAD(geoInfo.getPhotoUrl1()) .skipMemoryCache(真) .priority(Priority.NORMAL) .into(ImageVOne) ; 1から35までの画像を読み込み、各画像は150ko & 250koの間にある必要があります。私はそれを減らすことはできません。Androidのメモリリークグライド
このアクティビティには、メインアクティビティからセッションで複数回アクセスしたり、別の写真をロードするたびにアクセスできます。例えばそれは、ワシントンの写真になります最初の時間は、その後、ロンドンの写真など
私の問題は、メモリの使用がたくさんに画像をロードする活動が開始されるたびに増加していることである:
I 3〜5回アクティビティを開始すると、アプリがクラッシュします。エラーメッセージが java.lang.OutOfMemoryErrorを次のとおりです。OOM
まで1126320空きバイトと1099キロバイトで1411340バイトの割り当てを割り当てることができませんでした私はposts about memory leaksを読んで、私はグライドは、この問題を回避するだろうと思いました。写真を使った私の活動は、別のものが始まる前に終わっていますが、私のアプリケーションに割り当てられたメモリは落ちていないようです。 また、マニフェストの画像アクティビティにandroid:noHistory = "true"を追加しましたが、何も変更されません。
私のマニフェストではアンドロイド:largeHeap = "true"を追加しましたが、問題が延期されました(写真アクティビティを約10〜15回開始できます)。アプリの前に画像ビューで読み込まれない写真がたくさんあります。クラッシュ、それは私にとっては良い解決策ではありません。
グライドを使用すると.skipMemoryCache(true)を追加しようとしましたが、変更に気付きません。
写真のアクティビティからメインアクティビティに移動するたびに「メモリ使用量」が減少してから、新しい写真で再びアクティビティを開始すると増加するはずです。しかし、私が青いグラフで見るものから、それはほとんど増加するだけです。私は何をすべきか見ていますか?
はグライドを使用すると、メモリリークの問題ではないでしょうアレックス
に使われていることをライフサイクルを次のuが活動に押し戻されるたびを終えましたか? –
イメージコンテキストではなく、アクティビティコンテキストからグライドを呼び出そうとしましたか?グライドはどういうわけか、画像への参照を保持しているので、私の最高の推測はGCができないということです。 Glide.with(ImageVOne.getContext())をGlide.with(これはActivityBを参照してください)に変更してください。 – NSimon
@ Alex9494私の答えを確認してください。役立つかもしれません。 – tahsinRupam