读书人

弄错一个概念:Android的Thread与Hand

发布时间: 2012-07-02 17:46:22 作者: rapoo

弄错一个概念: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的操作是控制控件的刷新,保证控件刷新的线程安全。

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

读书人网 >Android

热点推荐