2017-08-29 88 views
2

有誰知道我可以通過android進行同步調用嗎?我基本上不想再繼續下去,直到我從服務器得到y/n的響應。通過Android/Java的同步API調用

這是代碼的最簡單的版本,我有

URL url = new URL("http://google.com"); 
HttpURLConnection connection = (HttpURLConnection) 
url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 
int code = connection.getResponseCode(); 

但因爲它是在主線程創建它給了我這個錯誤。

NetworkOnMainThreadException 

任何幫助是極大的讚賞,感謝

+0

你不能阻止主線程。 –

+0

建議:你可以使用Asyntask顯示進度條,直到你得到響應。基於響應你可以處理你想要在onPostExecute https://developer.android.com/reference/android/os/AsyncTask.html – Raghavendra

+0

中做什麼我同意,重複的問題...沒有一個真正的答案。 – GhostCat

回答

3

基本上可以做HTTP上MainThread調用。

有許多變通的方式創建喜歡的可運行線程或的AsyncTask等試試下面的代碼片段:

new Thread(new Runnable() 
    { 
     public void run() 
     { 
      try 
      { 
       //your HTTP request code..  
      } 
      catch (IOException e) 
      { 
       //Handle exceptions 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 

進一步的閱讀多線程看到Android開發者documentation

+0

@GhostCat我沒有完全明白你的意思。這段代碼將成爲OP應該處理的OP.Rest事情的指南。它只是一個提示或參考 – Akshay

+0

從我讀的內容來看,我被迫創建了一個線程。那麼@akshay響應有什麼問題?你提供的答案是土耳其語,我不會說火雞,很好,通常不是。 – flashc5

+2

現在好多了。我採取了自由,稍微更新了答案。並且:考慮刪除不再需要的評論。如果你想說謝謝,我想你知道在哪裏可以找到我的答案或問題;-) – GhostCat