android多线程
handler:
http://tech.it168.com/a2011/0922/1250/000001250289_all.shtml
http://www.cnblogs.com/tornadomeet/archive/2012/08/19/2646809.html
http://www.linuxidc.com/Linux/2011-08/40054.htm
http://dev.10086.cn/cmdn/wiki/index.php?edition-view-5398-1.html
Message:
http://blog.csdn.net/dadoneo/article/details/7667726
看了很多关于android handler的文章之后,终于对handler的使用有些了解了:
1、为什么要用handler??
首先,我们的android程序需要经常从网络或者其他的地方获取大量的数据来为用户提供信息,但是获取信息的过程经常是一个很耗时的过程,所以如果在UI线程中实现的话,很容易阻塞主线程,导致程序报错。所以我们需要开启一个新的线程来执行这个任务。
按理说,我们开启一个线程来执行不就行了么,比如搞一个Thread,为什么还要用handler??这是因为,虽然非主线程可以获取数据,但是由于主线程是非安全的,所有组件的更新只能由主线程来执行,所以就需要一个中介,把非主线程获取的数据传送给主线程,让主线程来更新组件。handler就是用来完成线程间的通信和数据交换的。
2,handler的使用方法
方法一:利用handler的post和removecallback方法,把runnable对象放入和踢出他的线程队列,这样其实还是在他所在的线程中执行
方法二:结合message来使用。在新的线程中使用handler.sendMessage(Message)方法来发送消息,(Message中封装了很多信息),然后再UI线程中调用handler.handleMessage(message)方法来接受message并且更新UI界面。
具体的使用方法见以上链接