2011-12-19 124 views
1

有,我這裏不理解的東西...我如何知道在後臺運行的AsyncTask已完成?

我定義類

public class SendStringToServer extends AsyncTask<String, Integer, Boolean> 
{ 
    . 
    . 
    . 
} 

現在,我implimented的「onPostExecute」的方法,我用從調用的主要活動這一背景下行動

new SendStringToServer().execute("stringToSend"); 

現在,我如何從主要活動中得知此操作已完成? Hiw可以從主要活動中知道這個字符串已經發送了嗎?

回答

3

嘗試這樣的:

public Handler myHandler= new Handler(){ 
     @Override 
     public void handleMessage(Message msg){   

      if(msg.arg1 == 1){ 
        //NOW in mainThread 

      } 
     } 
    }; 

public class SendStringToServer extends AsyncTask<String, Integer, Boolean> 
{ 
    . 
    . 
    . 
    onPostExecute(){ 
      --------- 
     ----------------- 

     Message msg = myHandler.obtainMessage(); 
     msg.arg1 = 1; 
     myHandler.sendMessage(msg); 

    } 
} 
0

最簡單的方法是後

new SendStringToServer().execute("stringToSend"); 

創建一個全局標誌您的活動中

boolean sendComplete = false; 

然後在onPostExecute只需添加

sendComplete = true; 
0

您需要在您的onpostexecute中使用活動具有偵聽器的事件。

相關問題