最近几天,我一直试图弄清楚如果在 标签中执行代码会发生什么。
void function(){
//somePreExecutionCode
new Handler().post(new Runnable(){
@Override
public void run(){
//someCode
}
});
}
看起来它没有阻塞UI,所以调用函数(buttons)不会卡在点击位置,直到一些代码完成。 但如果一些预执行代码启动进度条,那么进度条将在某些代码完成的正好同一时刻显示。 我知道有AsyncTasks,但还有其他可能性吗?
以及
之间的区别是什么?new Handler().post
和
View.post
?
Handler
,则必须先通过调用Looper.prepare()
方法来关联一个Looper
,然后再创建Handler
,最后在初始化处理程序后调用Looper.loop()
方法。 - Drew