【发布时间】:2017-10-13 06:12:42
【问题描述】:
我在Kotlin 中使用简单的StringRequest 和Volley 得到OutOfMemoryError。
令人惊讶的事实(至少对我而言)是,我并没有对大图像或大数据或类似的东西做任何事情。
因为我只是在测试,所以我使用 Volley 调用了一个公共天气 API,我确信(在 Postman 中查看)它只返回一个简单的 JSON。
我怎么可能得到OutOfMemoryError
为了实现 Volley 调用,我实现了一个 VolleySingleton,这可能不正确,对此不确定。我将在这里发布所有相关代码:
---> VolleySingleton.kt
object VolleySingleton : Application(){
var requestQueue: RequestQueue? = null
get() {
if (requestQueue == null) {
requestQueue = Volley.newRequestQueue(applicationContext)
}
return requestQueue
}
fun <T> addToRequestQueue(request: Request<T>) {
requestQueue?.add(request)
}
}
然后就是 MainActivity.kt 上使用 VolleySingleton.tk 的函数
fun callWeatherAPI(){
val request = StringRequest(Request.Method.GET,url,
Response.Listener { response ->
Log.d("API","RESPONSE: "+response)
},
Response.ErrorListener { error ->
Log.d("API","ERROR: "+error)
})
VolleySingleton.addToRequestQueue(request)
}
【问题讨论】:
标签: out-of-memory kotlin android-volley