各位朋友:
下面是我的后台线程的简化代码:
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);
}
}我遇到的问题是,当进行post()调用时,后台线程可能还没有创建处理程序对象。本质上,我需要一个等待循环来初始化处理程序对象。在Android下,什么是生成的可接受的方法?
提前感谢您的帮助。
打招呼,彼得
发布于 2011-10-07 12:05:19
您可以在初始化处理程序之后设置一个标志,并在调用post之前等待此标志。
在并发系统中等待标志的一种简单方法是使用CountDownLatch。它将从1开始,在处理程序初始化后递减。点击这里查看详情:http://download.oracle.com/javase/1,5,0/docs/api/java/util/concurrent/CountDownLatch.html
https://stackoverflow.com/questions/7669397
复制相似问题