2013-06-21 36 views
0

我想執行一個保存與服務器連接的函數。 當出現一些新消息時,我應該收到一個方法。我們的iOS版本使用同步的請求來控制此方法,但在Android中怎麼做?如何在Android中創建一個同步的HttpRequest?

+0

我編輯了這個問題,使其更清晰。如果您覺得它失去了意義,請回復我的更改。 – verybadalloc

回答

0

簡短的回答是:「你不能」,因爲顯示線程不會讓你做出HTTP請求。更長的答案是,只要您不介意線程中調用的「同步」部分,就可以使用apache commons,並在GETTING/POSTING數據時創建一個阻塞的服務器調用。但是,您仍然需要給線程一個Runnable回調函數,它將在完成請求時調用它。

+0

謝謝。過去,我使用AsyTask或處理程序來實現函數。但現在我想做一個長輪詢,所以我想使用同步方法。當然,它應該用其他方法編寫,但我仍然不知道如何去做。我很難找到正確答案在appache commons或java.util.net中。 – Marshall

+0

AsyncTask只是一個線程的封裝(它具有一些很好的功能,可以知道什麼時候完成了你想做的事情)。問題是3.0之後的Android不允許你在主(顯示)線程上進行網絡調用。所以,你別無選擇,只能派生一些備用線程來進行網絡調用。但是,如果你的志向是長期民意調查,那麼封鎖就不是答案。我會敦促你使用套接字。連續來回數據交換到服務器更有效。 –

相關問題