带 Volley 的 Android MVP

标签 android android-volley mvp android-mvp

我有以下问题。我想用 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/

相关文章:

android - Appsee 找不到 Android list 文件

android - 播放服务广告与 appcompat 冲突

android - 在 volley post 请求中发送表单数据

ASP.NET Web 窗体 - 模型 View 展示器和用户控件

java - 用什么? MVC、MVP 或 MVVM 还是……?

c# - Webforms MVP 被动 View - 事件处理

android - 如何从画廊 View 中禁用自动选择

java - 使用 Android TimePicker.getCurrentHour 的问题

java - Volley 请求队列超时

java - 如何在 Bazel 中为 Android 项目添加 Maven 依赖项(例如 Volley、Gson)?