2011-10-06 188 views
1

我有一個gui線程開始一個新線程來做一些繁忙的事情。 GUI線程將等待工作線程完成,同時GUI需要響應。android線程:工作線程如何向主(GUI)線程發送信號?

Psedo代碼:

主線程:

start_thread(); wait_thread_done();

工作線程:

doing_sth(); notify_main_thread();

什麼是最簡單的方法來做到這一點在android中?

回答

0

調用Activity#runOnUiThread(Runnable),您傳遞給該方法的Runnable將在GUI線程上執行。

或者使用AsyncTask - 這是正確的方法。

1

一個小工作片段:

new Thread() { 

        public void run() { 
          handler.post(new Runnable() { 
           public void run() { 
            try{ 
             // **Do the GUI work here** 

           } catch (Exception e) { } 
         }}); 
          }; 

      }.start(); 
+1

我會建議儘可能使用AsyncTask而不是線程。這是做到這一點的最簡單的方法。 – spatulamania

+0

是的,但你不能做AsyncTask內聯。 – AVEbrahimi

+0

您可以像使用線程一樣使用它們。 – spatulamania

0

等待結果將使GUI線程響應。你需要使用AsyncTask並覆蓋onPostExecute來執行後臺線程完成時所需的操作