2016-08-18 187 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