Я хочу создать библиотеку, чтобы уменьшить мою дублируемую сеть, работая над любыми проектами андроида или даже дать моей банке некоторым другим разработчикам возможность использовать мои методы для сетевых коммуникаций.Использование библиотеки волейбола в библиотеке
Так я построить это:
import java.util.Map;
import org.json.JSONObject;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request.Method;
import com.android.volley.Request.Priority;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
public class RequestResp {
private final static String WEB_SERVICE_URL = "http://blabla/api";
private final Priority priorityImmediatelly = Priority.IMMEDIATE;
private final Priority priorityHigh = Priority.HIGH;
private final Priority priorityNORMAL = Priority.NORMAL;
private String tag_req_default = "tag_req_default";
VolleyCustomRequest mVolleyCustomReq;
DefaultRetryPolicy drp = new DefaultRetryPolicy(15000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
public /*JSONObject*/ void sendParamsAsHighPriority(Map<String, String> params) {
mVolleyCustomReq = new VolleyCustomRequest(Method.POST,
WEB_SERVICE_URL, params, new Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
if (response != null) {
}
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(tag_req_default, error.getMessage());
}
}) {
@Override
public Priority getPriority() {
return priorityHigh;
}
};
mVolleyCustomReq.setRetryPolicy(drp);
VolleyController.getInstance().addToRequestQueue(mVolleyCustomReq,
tag_req_default);
/*return response; ?!?!?*/
}
}
Но как вернуть ответ ?! Причина, если сервер был занят или вниз, или что-то, что делает ответ немного запоздалым, разработчики в своих приложениях получают нуль! (Я думаю).
Как это сделать ?! Создайте библиотеку jar, которая имеет класс, который имеет метод, который дает параметры и отправляет его по определенному URL-адресу, с библиотекой волейбола?
Если разработчики (используйте мою банку в своих приложениях) вызовите метод sendParamsAsHighPriority дважды, ответ в onSuccess - это для какого и разработчика, как это знать ?! –
Если вы запускаете его асинхронно. Тогда это будет похоже на first-first first.It означает, что первым ответом будет ответ первого вызова api. – Soham