我有一个帖子:
public class KelvinThread implements Runnable {
private Handler mSoundHandler;
public KelvinThread() {
super();
mSoundHandler = new Handler();
}
private Runnable mSoundThread = new Runnable() {
public void run() {
// my treatment
}
};
@Override
public void run() {
while (true) {
// ....
mSoundHandler.postDelayed(mSoundThread, 2000);
// ....
}
}
这个帖子" KelvinThread"是从另一个线程创建并启动的。
我有这个错误:
无法在未调用Looper.prepare()的线程内创建处理程序
分配我的处理程序时:mSoundHandler = new Handler();
感谢您的帮助!
答案 0 :(得分:0)
请参阅Looper documentation。还有一个例子。
<强> UPD 强> 您也可以使用Looper.getMainLooper()将处理程序附加到主循环器而不是创建第一个线程。