我有一個gui線程開始一個新線程來做一些繁忙的事情。 GUI線程將等待工作線程完成,同時GUI需要響應。android線程:工作線程如何向主(GUI)線程發送信號?
Psedo代碼:
主線程:
start_thread(); wait_thread_done();
工作線程:
doing_sth(); notify_main_thread();
什麼是最簡單的方法來做到這一點在android中?
我有一個gui線程開始一個新線程來做一些繁忙的事情。 GUI線程將等待工作線程完成,同時GUI需要響應。android線程:工作線程如何向主(GUI)線程發送信號?
Psedo代碼:
主線程:
start_thread(); wait_thread_done();
工作線程:
doing_sth(); notify_main_thread();
什麼是最簡單的方法來做到這一點在android中?
最簡單的方法是使用Android的AsyncTask。文檔在這裏 http://developer.android.com/reference/android/os/AsyncTask.html
而且你可以調用Activity.runOnUiThread()來更新後臺任務的UI。
調用Activity#runOnUiThread(Runnable),您傳遞給該方法的Runnable將在GUI線程上執行。
或者使用AsyncTask - 這是正確的方法。
一個小工作片段:
new Thread() {
public void run() {
handler.post(new Runnable() {
public void run() {
try{
// **Do the GUI work here**
} catch (Exception e) { }
}});
};
}.start();
等待結果將使GUI線程響應。你需要使用AsyncTask並覆蓋onPostExecute來執行後臺線程完成時所需的操作
我會建議儘可能使用AsyncTask而不是線程。這是做到這一點的最簡單的方法。 – spatulamania
是的,但你不能做AsyncTask內聯。 – AVEbrahimi
您可以像使用線程一樣使用它們。 – spatulamania