0
我正在使用排氣庫進行API調用並獲取響應。但我想等待從API獲得完整響應,然後執行Volley請求下的其餘代碼。我嘗試使用接口,也使用線程,但它不工作。如何等待在android中完成齊射異步任務?
請給我一些實施這個建議嗎? 謝謝。
我正在使用排氣庫進行API調用並獲取響應。但我想等待從API獲得完整響應,然後執行Volley請求下的其餘代碼。我嘗試使用接口,也使用線程,但它不工作。如何等待在android中完成齊射異步任務?
請給我一些實施這個建議嗎? 謝謝。
當你發送的凌空請求時,它會叫你回來,如果請求成功或發生錯誤:
所以你需要調用包含應得到響應後執行的代碼的方法:
在這裏,我有評論,你可以調用這個方法:
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST, url, js, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e(TAG, "Successfully signed in : " + response.toString());
//put your code here
// added method call
parseJson();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String json = null;
Log.e(TAG, "Error at sign in : " + error.getMessage());
// put your code here
}
});
編輯:
對於JSON解析後執行代碼:
處理程序:IncomingHandler
類
private static class IncomingHandler extends Handler {
private WeakReference<MainActivity> yourActivityWeakReference;
public IncomingHandler(MainActivity yourActivity) {
yourActivityWeakReference = new WeakReference<>(yourActivity);
}
@Override
public void handleMessage(Message message) {
if (yourActivityWeakReference != null) {
MainActivity yourActivity = yourActivityWeakReference.get();
switch (message.what) {
case 0:
// add your code here
break;
}
}
}
}
在onCreate()
// Declaration of handler
private IncomingHandler incomingHandler;
// initialize handler
incomingHandler=new IncomingHandler(MainActivity.this);
樣本解析JSON方法創建它的實例,並使用處理程序發送消息:
public void parseJson() {
for (int i = 0; i < 50; i++) {
System.out.println("Printing :" + i);
}
incomingHandler.sendEmptyMessage(0);
}
謝謝。!!
你爲什麼降低我?我提到,我是初學者,那麼也 –
@Rohan Bundelkhandi:哦,人..!我沒有貶低你,而是我已經給你一個答案..! – AndiGeeky
以前我試過你的代碼,但它不起作用 –