public void btnWeb_Click(View view){
String url="http://localhost/test/index.php";
List<NameValuePair> dict = new ArrayList<NameValuePair>();
dict.add(new BasicNameValuePair("url",url));
dict.add(new BasicNameValuePair("id", "3"));
PostReq postreq= new PostReq();
postreq.execute(dict);
String result="";
while(result==""){ result= postreq.content;}
System.out.println(result); }
PostReq
是以异步方式对服务器执行Post请求的类。
问题在于,如果我没有放置while
,则打印函数将变量RESULT打印为空,因为它没有等待线程postreq.execute(dict)
完成操作。
我强制等待WHILE
,但WHILE
会阻止主线程。
如何等待方法执行,然后异步将值赋给变量RESULT
?
例如,在Windows Phone的C#中,我这样做了:
async void button_click() {
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("id", "3");
string url="http://localhost/test/index.php";
PostReq pr= new PostReq(url,dict);
String risposta = await pr.getRisposta(); }
使用Java for Android而不是我该怎么办?
答案 0 :(得分:0)
看看AsyncTask。对于来自另一个线程的结果,在while循环中重复检查结果不是一个好主意。
http://developer.android.com/reference/android/os/AsyncTask.html