我是android / java的新手,但我拥有c#和.Net的高级知识。
我遇到了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) {
}
}
和电话:
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并添加网址时,它会显示“无法找到本地变量'网址'”?! (关于BreakPoint - &gt; // BREAKPOINT HERE)
我做错了什么?!
修改
将执行更改为
testtask task = new testtask();
String[] params = new String[] {"wfwef"};
task.execute(params);
没有解决问题...
答案 0 :(得分:0)
您不需要传递字符串数组!如果您只传递一个字符串,则可以使用urls [0]访问doInBackground
中的该字符串!希望它有所帮助
yourAsyncTask.execute(Your URL String);
在doInBackground
访问网址中,就像使用数组一样。网址[0]
答案 1 :(得分:-1)
将execute()作为参数赋予字符串数组,而不是字符串。 在doInBackground(String ... urls) 你可以用网址[0],网址[1]等取回它。