В моем приложении есть активность, чей показ вокруг 1000
очень маленьких растровых изображений (около 20kb
каждого растрового изображения). После загрузки некоторых растровых изображений есть OutOfMemoryException
.Использование LruCache и исключение OutOfMemoryException
Я был в начале чтения около SoftReference
, и это похоже, что оно решит мою проблему о OOM exceptions
. Но потом я читал, что он не будет кэшировать мои растровые изображения и освободит их «слишком рано», поэтому ему придется снова декодировать растровое изображение и «тратить время». Итак, я внедрил LruCache
.
Как я могу убедиться, что я не получу OOM exception
при реализации моего LruCache
?
Может быть, я должен просто использовать SoftReference, потому что моя главная цель, чтобы избежать OOM
Или это может быть мое решение? LruSoftCache
Что произойдет, если он превышает указанную память? освобождает ли он другие выделенные растровые изображения, чтобы избежать исключения памяти? – idish
Да, наименее недавнее используемое растровое изображение будет удалено из кеша и будет собираться мусором, если на него не ссылаются другие объекты. – xizzhu
«будет сбор мусора» означает, что он будет переработан? bitmap.recycle() – idish