首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

弄错一个概念:Android的Thread与Handler是不同的

2012-07-02 
弄错一个概念:Android的Thread与Handler是不同的!弄错一个概念:Android的Thread与Handler是不同的!?一直以

弄错一个概念:Android的Thread与Handler是不同的!

弄错一个概念:Android的Thread与Handler是不同的!

?

一直以为Android中Handler的post方法会创建一个线程,一直都是这样编程过来,也没发现什么问题,

?

最近在编一个对线程要求很高的一个程序时,发现机器反应特别缓慢,一直找不到问题所在,

?

最后实在没办法用Thread代替Handler来创建线程,问题解决了...

?

原来一直是我的概念出现了问题,Handler并不是Android为新建线程而设立的方法,Handler其实是用来对控件进行异步刷新的方法。

?

这里要注意:Handler不能在Thread中创建,必须要在Thread外创建。

?

对我的无知进行一个记录。

Handler handler = new Handler();handler.post(){ //网络操作 //控件刷新操作}
以上代码运行瓶颈在网络操作上,以为时延很大

修改后
new Thread(new Runnable(){    public void run(){        //网络操作        handler.post(new Runnable(            //控件刷新操作        ));    }}).start();

这样做才是真正的启动了线程,让网络操作在后台运行
Handler的操作是控制控件的刷新,保证控件刷新的线程安全。

纯属个人意见,欢迎拍砖。

热点排行