0

저는 android/java에 익숙하지만 C# 및 .Net의 고급 지식을 보유하고 있습니다.Android AsyncTask params을 (를) 찾을 수 없습니다.

AsyncTask에 문제가 있습니다.

내 코드 :

import android.os.AsyncTask; 

public class testtask extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... urls) { 
     String response = ""; // BREAKPOINT HERE 

     return ""; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
    } 
} 

그리고 전화는 : 내가 URL을 액세스 할 수 없기 때문에

public void RequestDepartments(View view) { 
    BamakiWebService service = new BamakiWebService(); 
      RequestType request = new RequestType(); 

      request.Uri = "departments/all"; 


      try { 

       testtask task = new testtask(); 
       task.execute("wfwef"); 

      } 
      catch (Exception ex) { 
       Log.e("Main", ex.getMessage()); 
      } 
} 

강령은 실패?! doInBackground를 디버그하고 URL에 "로컬 변수 'urls'를 찾을 수 없습니다."라는 경고를 추가 할 때?! (BreakPoint에 -> // 여기에 점)

내가 뭘 잘못하고있는거야?! (가)

testtask task = new testtask(); 
String[] params = new String[] {"wfwef"}; 
task.execute(params); 

실행을 변경

EDIT 문제를 해결하지 않았다 ...

답변

0

문자열 배열을 전달할 필요가 없습니다! 단 하나의 문자열을 전달하는 경우 doInBackground에서 해당 문자열에 urls [0]로 액세스 할 수 있습니다! 이

yourAsyncTask.execute(Your URL String); 

을하는 데 도움이 그리고 당신은 배열을 할 것 같은 doInBackground 액세스하는 URL 바랍니다. urls [0]

+0

이 vargs 매개 변수를받으며, 추가 한 문자열의 수와 같아야 하나, 또는 하나의 문자열 만 추가하기 때문에 명시 적 Array 초기화가 필요 없다고 알려줍니다. – whymatter

+0

'params'는 asynctask의 배열입니다. 한 문자열 만 전달하면 위치 0의 params에 있습니다. 또는 위치 0의 url과 같습니다. @iOLIVER – Mike

-1

()는 실행 PARAM 아닌 문자열 문자열 배열을 준다. doInBackground (String ... urls)에서 URL을 다시 가져올 수 있습니다.

+0

죄송합니다.하지만 그 일은 잘되지 않습니다.이 같은 실행을 변경했습니다. testtask task = new testtask(); String [] params = new String [] { "wfwef"}; task.execute (params); – whymatter

+0

execute (new String [] { "your param", "your second param"})? – NewOutlaw

+0

아니요 ... android-studio는 vargs 매개 변수 – whymatter

관련 문제