- runOnUiThread
runOnUIThread使用
runOnUiThread(new Runnable() {
@Override
public void run() {
//方法体
}
});
- Handler
Handler详解
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//方法体
}
};
从实现原理上,两者别无二致,runOnUiThread
也是借助Handler
实现的。
- 对于使用场景,
runOnUiThread
用法简单,并且共享了同一个Handler
,用起来高效、方便。
另外,如果在主线程中直接调用,runOnUiThread
也可以判断并立即执行,不再推入消息队列。 - 而
Handler
由于更加基础,所以可定制性要比runOnUiThread
强,可以实现标记、延时等功能,并且可以推入其他消息循环线程而非主线程。