我想计算Glide图像的加载时间,但是似乎无法获取加载时间。
当前,RequestListener.onResourceReady
用于计算时间,但是当滑动列表或将应用返回后台时,这是不准确的。
var start = System.currentTimeMillis()
placeholder?.let { creator.placeholder(placeholder) }
error?.let { creator.error(error) }
creator.config(Bitmap.Config.RGB_565)
creator.fit().into(image, object : RequestListener<Drawable> {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Drawable>?,
isFirstResource: Boolean
): Boolean {
return false
}
override fun onResourceReady(
resource: Drawable?,
model: Any?,
target: Target<Drawable>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
var end = System.currentTimeMillis()
System.out.println(
"loading_time "+
" photo=" + src + " start=" + start + " end=" + end + " cost=" + (end - start) + " dataSource=" + dataSource
)
return false
}
})```
答案 0 :(得分:0)
尝试以下逻辑:
在加载图像之前,现在要花很长的时间在调用glide load函数之前执行Handler.postdelay(),因为它将以100毫秒的间隔连续增加您的Lateinit long var,并且当资源就绪时,只需执行handler.removecallbacksandmessages(),之后您可以打印时间。