为什么此代码会阻止while循环中的主UI?
new Thread(new Runnable() {
public void run() {
someButton.post(new Runnable() {
public void run() {
while (HintergrundDienst.laeuft)
{
//some delay code, like Thread.sleep
}
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
//do on ui after HintergrundDienst.laeuft = false
}
});
}
});
}
}).start();
运行它会阻止主要的ui。
答案 0 :(得分:5)
为什么此代码会阻止while循环中的主UI?
因为它在主应用程序线程上运行。您的循环位于Runnable
post()
。 The documentation for post()
表示“runnable将在用户界面线程上运行”。这里,“用户界面线程”指的是主应用程序线程。