From 2cea59d6a91fa3b324e7cb2fb709fe383d2406d2 Mon Sep 17 00:00:00 2001 From: galwaychia Date: Wed, 24 Apr 2019 09:39:33 +0800 Subject: [PATCH] release stream add disconnect URLConnection, which may leading to the exhaustion of resources --- .../svgaplayer/SVGADynamicEntity.kt | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/library/src/main/java/com/opensource/svgaplayer/SVGADynamicEntity.kt b/library/src/main/java/com/opensource/svgaplayer/SVGADynamicEntity.kt index 8aaade2f..b5475593 100644 --- a/library/src/main/java/com/opensource/svgaplayer/SVGADynamicEntity.kt +++ b/library/src/main/java/com/opensource/svgaplayer/SVGADynamicEntity.kt @@ -39,18 +39,25 @@ class SVGADynamicEntity { fun setDynamicImage(url: String, forKey: String) { val handler = android.os.Handler() thread { - try { - (URL(url).openConnection() as? HttpURLConnection)?.let { + (URL(url).openConnection() as? HttpURLConnection)?.let { + try { it.connectTimeout = 20 * 1000 it.requestMethod = "GET" it.connect() - BitmapFactory.decodeStream(it.inputStream)?.let { - handler.post { setDynamicImage(it, forKey) } + it.inputStream.use { stream -> + BitmapFactory.decodeStream(stream)?.let { + handler.post { setDynamicImage(it, forKey) } + } + } + } catch (e: Exception) { + e.printStackTrace() + } finally { + try { + it.disconnect() + } catch (disconnectException: Throwable) { + // ignored here } - it.inputStream.close() } - } catch (e: Exception) { - e.printStackTrace() } } }