2016-08-18 118 views
-1

我有这个代码,并在MyAsyncOpenUrl我得到一个杰森和解析它来读取服务器消息。我将它存储在公共变量名称消息中。但我的问题是if语句在服务器消息到达之前正在运行。我如何等待任务,直到我收到消息? 由我读了in this question它似乎我可以使用get方法,但我不知道如何使用它? :(如何等待异步任务完成其工作?

message = ""; 
MyAsyncOpenUrl task1 = new MyAsyncOpenUrl("http://test.com/op.php"); 
    try { 
    task1.execute(myURL).get(); 
    } catch (InterruptedException e) { 
    e.printStackTrace(); 
    } catch (ExecutionException e) { 
    e.printStackTrace(); 
    } 
//task1.onPostExecute(null); 


if (message.equals("fail")) 
     Toast.makeText(getBaseContext(), "Operation faild!", Toast.LENGTH_LONG).show(); 
+1

参考http://stackoverflow.com/questions/9671546/asynctask-android-example – Nikhil

回答

0

在旅游的AsyncTask重写方法onPostExecute。

onPostExecute =你的反应就可以使用。

+0

我怎么能给的网址onPostExecute? – Saeid

+0

请阅读有关asynctask http://stackoverflow.com/questions/25647881/android-asynctask-example-and-explanation/25647882#25647882 – Esperanz0

+0

谢谢你Esperanz0,但我认为它不是我正在寻找,onPostExecute不能得到我的网址,我不想改变我的用户界面布局在我吨,因为我想用它为不同的网址和不同的行动。所以我只需要消息:( – Saeid