0
我希望找到一個比我工作的公司所教的方法更好的處理反應的方法。如何管理具有更高可讀性的請求代碼android?
我被教導使用一個通用的HttpClient,它使用齊射來發送請求。客戶端有一個靜態方法,可以給出一個通用監聽器ResponseListener,當一個抽象響應通過時,這個監聽器會回調上下文。 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;
}
}
我開始考慮你建議的第二段。我認爲這是最有意義的。我會等待幾天,看看有沒有更好的建議出現,如果他們不這樣做,我會接受你的。 – Yoker