伙计们,
这是我的后台线程的简化代码:
public class MyThread extends Thread {
private Handler _handler;
public void run() {
Looper.prepare();
this._handler = new Handler();
Looper.loop();
}
public void DoSomething() {
if (!this.isAlive()) {
this.start();
}
this._handler.post(blah);
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是后台线程在调用post()时可能还没有创建处理程序对象.本质上,我需要一个等待循环来处理初始化处理程序对象.在Android下生成这个的可接受方法是什么?
预先感谢您的帮助.
问候,彼得
您可以在初始化 Handler 后设置一个标志,并在调用之前等待该标志post。
在并发系统中等待标志的一种简单方法是使用CountDownLatch. 它将从 1 开始,并在 Handler 初始化后递减。在此处查看详细信息:
http://download.oracle.com/javase/1,5,0/docs/api/java/util/concurrent/CountDownLatch.html
| 归档时间: |
|
| 查看次数: |
2348 次 |
| 最近记录: |