我寫了一個android庫,可以對各種網站進行網絡調用並返回必要的內容。我正在使用Volley庫,它的回調類似onResponse
和onFailure
。最初這個庫是一個應用程序,後來被改爲一個庫。在我的庫中處理回調
當它是一個應用程序,我可以很容易地處理回調。無論何時發生回調,我都會從那裏調用所需的函數,但現在當我導入爲庫並嘗試使用它時,只要我調用該函數,控件將從庫中返回,並且回調函數沒有執行任何操作。
public void sendForVerification(final String Response, final String Secret, final String Name) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
flag = true;
},
new Response.ErrorListener() {
@Override
public void onErrorResponse (VolleyError error){
flag = false;
}
}}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> params = new HashMap<>();
params.put("secret", Secret);
params.put("response", Response);
return params;
}
};
requestQueue.add(stringRequest);
}
}
當這個代碼是應用程序的一部分,而不是返回的標誌值我會調用適當的函數來處理結果。現在每當我調用這些函數時,在回調完成之前返回標誌的值,這會導致一些問題。
我的問題是我怎樣才能圍繞回調扭曲這種情況,以便在網絡調用完成時通知使用此庫的應用程序?
我認爲這將適用於'Volley'庫,但我也有其他Google API執行調用。我該怎麼做?是否有任何廣義回調,我可以在我的庫中創建,並在需要時從應用程序調用它們。 – Tyson
是的,剛剛更新了答案,而不是 –
我會嘗試.. – Tyson