曾记否我们通过Handler在主从线程中进行消息通信,定义重写使用···
今天我们使用runOnUiThread可以实现同样的效果。
以我们之前开发的图片查看器为例:(10min实现一个简易图片查看器(图片缓存))
此时将Handler的一套代码全部注释(Handler的定义、handleMessage方法的重写、Message的定义和发送)
接下来就是见证奇迹的时刻,直接使用runOnUiThread方法重写Runnable接口,在run方法中进行UI操作:
runOnUiThread(new Runnable() {
@Override
public void run() {
//一定在UI线程执行
mImage.setImageBitmap(bitmap);
}
});
这么简单粗暴?那我们为啥还要学Handler?
如果我们仅仅是更新UI操作,那么我们使用runOnUiThread。
如果我们还需要通过Message携带大量数据进行主从线程通信,那么我们还是使用Handler。