2017-02-25 28 views
0

嗨,我有一個凌空請求,我想停止繼續運行的應用程序用於從服務器獲取完整的JSON,我想使用本教程Volley - http request in blocking way如何使回調凌空JsonArrayRequest android系統中

,但我不明白的地方我必須把未來,未來

我在哪裏必須把volleyRequestQueue.add(request);

在這裏我必須把

try { 
JSONObject response = null; 
while (response == null) { 
    try { 
     response = future.get(30, TimeUnit.SECONDS); // Block thread, waiting for response, timeout after 30 seconds 
    } catch (InterruptedException e) { 
     // Received interrupt signal, but still don't have response 
     // Restore thread's interrupted status to use higher up on the call stack 
     Thread.currentThread().interrupt(); 
     // Continue waiting for response (unless you specifically intend to use the interrupt to cancel your request) 
    } 
} 
// Do something with response, i.e. 
new SignUpResponseListener().onResponse(response); 
} catch (ExecutionException e) { 
// Do something with error, i.e. 
new MyErrorListener().onErrorResponse(new VolleyError(e)); 
} catch (TimeoutException e) { 
// Do something with timeout, i.e. 
new MyErrorListener().onErrorResponse(new VolleyError(e)); 
} 

和我的截擊要求是:

JsonArrayRequest movieReq = new JsonArrayRequest(url, 
    new Response.Listener<JSONArray>() { 
     @Override 
     public void onResponse(JSONArray response) { 
     for (int i = 0; i < response.length(); i++) { 
     try { 
     JSONObject obj = response.getJSONObject(i); 
     int lage = (obj.getInt("flage")); 

     Toast.makeText(send_new_content.this, "flage "+lage, Toast.LENGTH_SHORT).show(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 

      }}} 
     }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
     }}); 
    AppController.getInstance().addToRequestQueue(movieReq); 
+0

你不需要一個未來,你不應該阻止用戶界面...並且你已經有請求隊列,那麼究竟是什麼問題呢? –

+0

我想停止線程以獲取來自服務器 – nazanin

+0

的完整地址URL圖像但是爲什麼?顯示一個對話框或進度條是正確的Android UI設計 –

回答

0

我想停止繼續運行的應用程序

我明白你想要的,但別。這是不好的用戶體驗。

可以相當作出new ProgressDialog()當請求發生/已完成

你已經通過了響應監聽罰款在movieReq顯示/隱藏,所以也許你應該更專注於解析JSON數組一些Java對象並加載適配器以顯示在ListView上。