【发布时间】:2013-07-14 21:26:33
【问题描述】:
我试图了解 looper.loop 的工作原理,以及何时在我的代码中使用它。 我有一个可运行的绑定服务。在里面我有一个处理程序,用于保存更新 Ui 的代码。这是代码。
private Runnable builder = new Runnable() {
public void run()
{
while(isThreadStarted == true)
{
if (newgps == 1)
{
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
//some code that updates UI
}
}
}
}
}
looper.prepair
}
- 从我读到的looper。 prepare 必须在处理程序生成之前调用。但我注意到我没有这样做,但这段代码仍然有效。这怎么可能?
- 我想解决这个问题,但我不确定将 loper.loop 放在哪里。因为这个处理程序被多次调用。如果我将 looper.loop 放在 .prepare 之后可以吗?然后.quit when isThreadStarted == false?
【问题讨论】: