我有一个gui线程开始一个新线程做一些繁忙的事情。 GUI线程将等待工作线程完成,同时GUI需要响应。
Psedo代码:
主线程:
start_thread(); wait_thread_done();
工作线程:
doing_sth(); notify_main_thread();
在android中执行此操作的最简单方法是什么?
答案 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以执行后台线程完成时所需的操作