可能存在内存泄漏
作者: LionHere创建于 2019年4月27日更新于 2019年5月6日
标签question
遇到可能出现内存泄漏的情况,或者是使用不当吗?我的代码如下:
frequently_called_binding_function (My_GifImageView_Pool pool) {
GifImageView gifImageView= pool.get();
gifImageView.setImageBitmap(a small size bitmap as a thumbnail);
runOnWorkerThread(() -> {
ParcelFileDescriptor pfd = download a gif from server();
runOnUiThread(() -> {
GifDrawable gifDrawable = new GifDrawable(pfd.getFileDescriptor());
gifImageView.setImageDrawable(gifDrawable);
pfd.close();
}
});
}这个池中有固定数量的 GifImageView, 并且从不重新创建新的 GifImageView。 运行此绑定函数数十次后, 导致原生堆从 30MB 增加到 ~200MB, 而强制回收也无法解决问题。
内容来源: koral--/android-gif-drawable