фрагмент Android, когда вызывать bitmap.recycle () - PullRequest
5 голосов
/ 19 декабря 2011

Я использую растровое изображение во фрагменте и вызываю bitmap.recycle() в методе onDestroy() фрагмента. Но довольно часто я получаю исключение

E/AndroidRuntime(4869): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@40659750

Я также попытался сделать это в методе фрагмента onDestroyView(), но все равно получил то же исключение.

Может ли кто-нибудь подсказать, какая из стадий жизненного цикла фрагмента является лучшей, где я должен назвать bitmap.recycle()

Ответы [ 2 ]

0 голосов
/ 20 октября 2014

Я нашел решение для этого, я боролся с точно такой же проблемой

Что я сделал, так это удалил все дочерние представления представления содержимого фрагмента / each.После того, как все дочерние изображения исчезли из каждого фрагмента, я щелкнул фрагмент (ы)

Я переработал растровые изображения на «OnDestroy» каждого фрагмента, как вы делаете прямо сейчас.

0 голосов
/ 27 января 2014

вы можете перезапускать либо в onDestroyView, либо в onDestory, но убедитесь, что вы снова создаете свое растровое изображение в своем oncreate или onCreateView ... так как вы снова используете ту же ссылку на растровое изображение, оно выдает переработанное исключение. Таким образом, вам нужно снова создать растровое изображение при создании фрагмента, или вы также можете проверить isRecycled (), чтобы узнать, было ли ваше растровое изображение уже переработано

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...