Android

来源:互联网 发布:中国数据域名管理 编辑:程序博客网 时间:2024/05/19 20:47
1.Handler:
       一个处理程序允许您发送和过程消息和可运行 与线程相关联的对象MessageQueue。 每个处理程序 实例相关联的单个线程和线程的消息 队列中。 当你创建一个新的处理程序,它绑定到线程/ 消息队列的线程创建,从那时起, 它将提供消息和runnables消息队列和执行 他们的消息队列
     一个处理程序有两个主要用途:(1)和进度信息 runnables执行在将来的某个时间点,和(2)排队 在另一个线程上执行一个操作的不是你自己的。
       完成的调度信息帖子(可运行), postAtTime(Runnable,长), postDelayed(Runnable,长), sendEmptyMessage(int), sendMessage(消息), sendMessageAtTime(消息,长),sendMessageDelayed(消息,长)方法。 的文章版本允许 你排队Runnable对象由消息队列时调用 他们收到了,sendMessage版本允许您将 一个消息对象包含一个包的数据 处理程序的处理handleMessage(消息)方法(要求 你实现的一个子类处理程序)。
发布或发送到处理程序时,您可以 允许项目尽快处理消息队列已经准备好了 这样做,或指定一个延迟之前加工或绝对时间 它被处理。 后两个允许您实现超时, 蜱虫和其他timing-based行为。
当一个 过程是为您的应用程序创建的,其主要线程致力于 运行一个消息队列,负责管理高层 应用程序对象(活动、广播接收器等)和任何窗口 他们创建。 您可以创建自己的线程,并沟通 主应用程序线程通过一个处理程序。 这是通过调用来完成的 相同的文章或sendMessage方法和之前一样,但 你的新线程。 给定的Runnable或消息将被预定 在处理程序的消息队列,并在适当的时候处理。
2.Looper

类用于运行一个消息循环的线程。 线程默认情况下做 没有一个消息循环与之相关;创建一个电话准备()在运行的线程循环,然后循环()它处理消息,直到停止循环。

大多数与一个消息循环是通过交互处理程序类。

这是一个典型的例子,缝合线的实现, 使用的分离准备()和循环()创建一个 最初的处理程序与电影进行通信。

3.Message:

定义一个消息包含一个描述和可以任意数据对象 发送到处理程序。 这个对象包含两个额外的int字段和一个 额外的对象字段,在很多情况下不允许您配置。

虽然消息的构造函数是公共的,最好的办法 其中一个是调用Message.obtain()或其中一个Handler.obtainMessage()方法,将拉 他们从池中回收对象。

4.MessageQueue

低级类控股派出的消息列表电影。 消息不是MessageQueue直接添加, 而是通过MessageQueue.IdleHandler与电影相关的对象。

您可以检索的MessageQueue当前线程Looper.myQueue()。

 
0 0
原创粉丝点击