我有以下问题。我想用 Android 实现 MVP,使用 Volley 作为模型。问题是,Volley requestQueue 需要上下文。我知道一个解决方案是制作静态上下文,但这是一种不好的做法。我应该如何使用 MVP 创建此代码。
RequestQueue queue = Volley.newRequestQueue(this);
最佳答案
我可以建议完全抽象您的网络请求并创建一个处理网络请求的类。然后你可以在创建它的时候创建这个类。例如,在具有应用程序上下文的应用程序类中。
class NetworkRequest(
private val context: Context
) {
val queue = Volley.newRequestQueue(context)
fun doNetworkRequest() {
val request = StringRequest(...)
queue.add(request)
}
}
class Presenter(
private val networkRequest: NetworkRequest
) {
. . .
}
通过这种方式,您可以通过模拟 NetworkRequest 来测试您的演示者,并且从您的演示逻辑中抽象出向服务器请求的实现细节。
关于带 Volley 的 Android MVP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58272455/