android thread:工作线程如何向主(GUI)线程发送信号?

时间:2011-10-06 06:47:08

标签: android multithreading

我有一个gui线程开始一个新线程做一些繁忙的事情。 GUI线程将等待工作线程完成,同时GUI需要响应。

Psedo代码:

主线程:

start_thread(); wait_thread_done();

工作线程:

doing_sth(); notify_main_thread();

在android中执行此操作的最简单方法是什么?

4 个答案:

答案 0 :(得分:4)

最简单的方法是使用Android的AsyncTask。文档在这里 http://developer.android.com/reference/android/os/AsyncTask.html

您可以调用Activity.runOnUiThread()来更新后台任务中的UI。

答案 1 :(得分:1)

一个小工作片段:

new Thread() {

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

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

            }.start();

答案 2 :(得分:0)

调用Activity#runOnUiThread(Runnable),传递给该方法的Runnable将在GUI线程上执行。

或使用AsyncTask - 这是正确的方法。

答案 3 :(得分:0)

等待结果将使gui线程无法响应。您需要使用AsyncTask并覆盖onPostExecute以执行后台线程完成时所需的操作