2016-07-21 3 views
0

발리를 사용하여 내 REST 서비스에 액세스하고 있습니다.발리 요청이 생성되었습니다 스레드

StringRequest postRequest = new StringRequest(Method.POST, "http://....", 
    new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      ... 
     } 
    }, 
    new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      ... 
     } 
    } 
) { 
@Override 
protected Map<String, String> getParams() { 
    ... 
} 

@Override 
public Map<String, String> getHeaders() throws AuthFailureError { 
    ... 
}}; 

postRequest.setShouldCache(false); 
Volley.newRequestQueue(context).add(postRequest); 

모든 것이 예상대로 작동하지만, 내가 ADV를 열 때 내가 볼 수있는 다섯 개 개의 새로운 스레드 상태가 처음부터 "대기"이있는 생성 된 것으로,이처럼 내 코드는 모습입니다. 이러한 스레드는 절대로 삭제되지 않습니다.

제 질문은 : 정상적인 행동입니까? 내 응용 프로그램의 성능에 문제가 있습니까? 왜냐하면 나는 잠시 후에 속도가 느려지니까. 나는 정말로 응용 프로그램을 닫고 다시 시작할 때까지 목록에 "대기"상태의 수백 개의 스레드가 있습니다.

답변

0

source code에 따르면 네, 새로운 요청 큐를 생성 한 직후에 풀을 생성하기 때문에 정상적인 동작입니다.

+0

감사합니다. 그렇다면 싱글 톤 도움말을 사용 하시겠습니까? https://developer.android.com/training/volley/requestqueue.html#singleton – gnome

+0

싱글 톤과는 아무런 관련이 없습니다. 발리는 더 효율적인 방법으로 더 많은 병렬 요청을하기 위해 풀에 5 개의 스레드를 생성합니다. 그것에 대해 걱정할 필요가 없습니다. – Divers