2014-09-04 58 views
0

我在Android中做了一個客戶端套接字程序,它正確地發送和接收數據,但是我的問題是客戶端在Asyntask的「doInBackground」中運行。我需要客戶端從服務器接收的信息,以便繼續處理進程,並且有我的問題和我需要的方法,我如何讓程序等待客戶端套接字方法在調用其他方法之前接收數據?Android套接字編程方法

實施例:

1) MyClientTask myClientTask =新MyClientTask(服務器,端口); myClientTask.execute();

2)Do_something_with _data_received();

3)Do_something_else_with _data_received();

在這種方法中,點2將與客戶端套接字同時運行。

在此先感謝。

+0

不要「讓程序等待」。一旦收到數據,調用依賴方法。 – 2014-09-04 02:12:19

回答

0

如果您正在使用片段將片段傳遞給asynctask。 執行doInBackground()中的邏輯,然後執行onPostExecute()中的fragment.method()。

onPreexecute和onPostExecute在UI線程上運行,doInBackground()在單獨的線程上運行。

提示:你可以替換進度視圖(圓形)直到的AsyncTask完成,

onPostExecute(){ 
    if(fragment.isAdded()){ 
     fragment.drawUI(); 
    } 
} 

其中drawUI()是一個讓你layoutView並使其可見的邏輯。

onPostExecute(){ 

2) Do_something_with _data_received(); 

3) Do_something_else_with _data_received(); 

} 

提示:請勿調用asynctask的.get(),因爲它會凍結UI線程。