我正在尝试回顾Handler的概念。因此,我只是创建一个线程来更新ProgressBar,然后查看它是否会引发异常。
这是我的代码
@Override
public void onResume() {
super.onResume();
new Thread(){
@Override
public void run() {
super.run();
while (progressBar.getProgress() <100){
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
progressBar.setProgress(pb.getProgress()+10);
}
}
}.start();
}
我的问题很简单。为什么不抛出任何CalledFromWrongThreadException?如果是这样的话,我们在处理进度更新时是否应该忘记Handler?
运气不好-ProgressBar
对从另一个线程更新进度有特殊的支持。这就是为什么它不扔东西的原因。
但是因为正是这种操作获得了额外的支持,对第二个问题没有。通常,您不会停止使用处理程序。例如,对于某些情况,您需要在更新进度时另外做一点UI事情。