Android中的几种多线程实现方式都有哪些?

匿名网友 匿名网友 发布于: 2016-04-26 00:00:00
阅读 141 收藏 0 点赞 0 评论 0

1.Activity.runOnUiThread(Runnable)FA5C9FEB-0D18-48C8-A10C-611D3E7F8389 使用: runOnUiThread可以帮助你在线程中执行UI更新操作,我们只需要在线程中写上类似 “`youractivity. runOnUiThread(new Runnable() { @Override public void run() {

 

                   // refresh ui 的操作代码

 

                } 

            });

2.Handler

andriod提供了 Handler 和 Looper 来满足线程间的通信。

      Handler 先进先出原则。

      Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。

      1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。 

      2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接   收Looper从Message Queue取出)所送来的消息。 

      3) Message Queue(消息队列):用来存放线程放入的消息。 

      4)线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。

3.AsyncTask

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.

使用的优点:

        l 简单,快捷

        2 过程可控

使用的缺点:

        l 在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.

评论列表
文章目录