【问题标题】:How do I manage request codes android with more readability?如何以更具可读性的方式管理请求代码 android?
【发布时间】:2015-09-09 11:46:02
【问题描述】:

我希望找到一种比我工作的公司教给我的方法更好的方法来处理回复。

我被教导使用通用 HttpClient,它使用 volley 来发送请求。客户端有一个静态方法,该方法将获得一个通用侦听器 ResponseListener,它会在 volley 响应通过时对上下文进行回调。 ResponseListener 将跟踪所有请求“类型”。这是提供给客户端的代码,以便上下文可以区分请求。

有没有其他方法可以跟踪所有请求代码而不必保留一个大目录类型的接口文件?当您收到超过 100 个请求时,看起来会变得非常令人难以抗拒。然后你为客户端中的代码编写包装函数,它也变得乱七八糟。

HttpClient

public static void doRequestString(final ResponseListener listener, final int type, final String url, final JSONObject postData) {
    // Request a string response
    StringRequest request = new StringRequest(Request.Method.GET, url,
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                // Result handling
                listener.onRequestDone(type, response);
            }
        }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            // Error handling
            System.out.println("Something went wrong!");
            error.printStackTrace();

        }
    });

    request.setTag(context);
    VolleyClient.getInstance(context).getRequestQueue().add(request);

}

听众

public interface ResponseListener
{
    int HELLO_REQUEST = 0;
    int GOODBYE_REQUEST = 1;
    // every other request numbered here, so they don't conflict

    void onRequestDone(int type, String response);
}

上下文

public void onRequestDone(int type, String response)
{
    switch(type) {
        case Response.Listener.HELLO_REQUEST:
            handleHello();
            break;
        case Response.Listener.GOODBYE_REQUEST:
            handleGoodbye();
            break;
    }
}

【问题讨论】:

    标签: java android http callback request


    【解决方案1】:

    说实话,没有那么多选择。您现在正在以集中的方式处理您的回复。另一种选择是将请求类型剥离为每个请求都有一个侦听器。这里的主要缺点是您的代码会充满侦听器。

    我建议您尝试以适合您用例的方式组合这两种方法。也许创建一个中间服务层,通过它们的一些属性划分你的功能(例如逻辑上 - 所有用户请求组合在一起等),为每个服务公开一个侦听器并在那里管理请求代码。这样你可以有一点模块化。

    【讨论】:

    • 我开始考虑你建议的第二段。我认为这是最有意义的。我会等几天看看有没有更好的建议,如果没有,我会接受你的。
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多