【发布时间】:2012-02-26 04:04:41
【问题描述】:
我在做Android UI Thread,有一个耗时的工作,所以我把它放在另一个线程上。我想要两件事:
1) 在这个子线程运行后,UI Thread 将开始工作A
2)这个workA将获取一些在子线程中创建的数据。
这是我的解决方案:
Car car;
public void onResume(){
super.onResume();
Thread t = new Thread(){
car = new Car();
car.takePetrol; //take car full petrol
}
});
t.join();
count_How_far_Car_can_go(car.getPetrol);
}
我的代码中的问题是:我使用了 t.join();等待线程 t 完成。这将“阻止” UI 线程。当然,这不是我想要的。 (因为我做了另一个线程,所以 UI Thread 仍然可以顺利工作)
谁对我的问题有其他解决方案,请帮助我:)
谢谢:)
【问题讨论】:
-
而且,我仍然信任 StackOverFlow 社区 ...
-
如果您想要某种方式与 GUI 线程交互,下面的答案似乎是 AsyncTask 的方式。我个人使用标准 Java 线程并使用 Producer-Mediator-Consumer 模型在 GUI 和其他线程之间发送消息。 jaiswaltraining.com/DesignPatterns/ch13.php
标签: java android multithreading sendmessage