2013-06-24 23 views
1

我有一個應用程序使用Apache的HttpClient來獲取網站。它有2個線程 - 用戶界面線程(用戶可以下載子頁面)和其他每個x秒刷新主頁通過使用HttpPost下載。 似乎有一些同步問題(查詢開始立即結束套接字錯誤),當在重新加載期間用戶開始下載另一個頁面(我使用相同的DefaultHttpClient爲這兩個查詢)。重要的是,該頁面需要cookie(用戶有其會話)。 我的問題是: 我應該使用一個HttpClient和查詢隊列不讓它們在同一時間發生? 或者,也許每個線程應該有它自己的HttpClient,他們應該有共同的上下文? 或者有其他方法可以消除這個錯誤?Android - HttpClient和多線程

我也想問你是否知道比JSoup更快的HTML解析器。這很快,我同意,但也許有更好的?

+0

我使用異步任務 - 問題是同步... – karex

回答

0

您應該爲每個線程都有HTTPClient。如果你正在做任何共同的任務(可能是危險的)。 爲了使線程安全,您應該在方法級別或者您有共同任務的地方放置同步塊。

建議:使用線程時儘可能使任務儘可能分離。如果完全有一些共同的任務,則利用同步塊