android 的API的handler翻译
继承顺序:java.lang.Object-->android.os.Handler
直接子类:AsyncQueryHandler,HttpAuthHandler,SslErrorHandler
public class Handler extends Object
一个Handler允许你传递、处理Message和Runnable对象,通过相关联的thread的消息队列(MessageQueue).每个handler实例都与一个thread相关联和特定的消息队列。当你创建了一个新的Handler,他就绑定到了这个thread的thread或者message队列,而这个thread从创建的地点将传递消息和runnables到那个消息队列,且处理那些从消息队列中出来消息。
有两种主要的使用方式,1、有计划的处理message和runnable,在未来的某个时刻。2、在非你的另外的线程上执行一个方法。
计划消息使用下列方法处理:post(java.lang.Runnable),postAtTime(Runnable,long),postDelayer(java.lang.Runnable,long),sendEmptyMessage(int),sendMessage(android.os.Message),sendMessageAtTime(android.os.Message,long),和sendMessageDelayed(android.os.Message,long)。消息队列调用post方法允许你讲Runnable对象压入队列,当被接收的时候。当Handler的handleMessage方法处理一束Message包含的数据的时候,允许你压入message进入队列(需要你实现一个Handler的子类)。
当提交或者传递一个Handler的时候,你既可以让item处理与消息队列准备好一样快,或者指定一个延迟在他被处理或者被处理前的绝对时间间隔。后两者需要你实现时间、轨迹和其他的时间基本行为。
当应用创建好一个process,他的主线程决定运行一个消息队列,这个队列接管着应用最高等级的对象(activities,broadcast,receivers,etc)和他们创建的任意的窗口。你可以创建你的自己的threads和通讯,通过一个Handler与主线程完成回调。在完成之前调用相同的post或者sendMessage方法,但是通过新的thread.给定的Runnable或者Message将被添加到Handler的消息队列,且在适当的时候完成处理。
一、嵌套类摘要
Handler.Callback
在你实例化一个Handler的时候你可以使用Callback接口用来避免必须实现你自己的Handler子类。、
二、构造方法摘要
Handler()
默认的构造方法使得该handler与当前的thread队列相关联。
Handler(Handler.Callback callback)
与当前的thread队列想关联且在回调接口中可以处理message
Handler(Looper looper)
使用自定义的队列代替默认的队列。
Handler(Looper looper,Handler.Callback callback)
使用自定义的队列代替默认的队列且在回调接口中处理message
三、方法摘要
dispatchMessage(Message msg):处理系统的信息
dump(Printer pw, String prefix)
getLooper()
handleMessage(Message msg)子类必须实现这个来接收消息
hasMessage(int what):检查消息中的what是否含有消息且obj在队列中是否是对象。
obtainMessage():从全局message池返回一个新的Message
obtainMessage(int what):功能同上,除了能够设置返回消息中的member属性
obtainMessage(int what,int arg1,int arg2):功能同obtainMessage(),除了能设置what arg1, arg2这些属性。
obtainMessage(int what,int arg1,int arg2,Object obj):功能同不带参数的方法,除了能够设置what ,obj,arg1,arg2值。
obtainMessage(int what,Object obj):功能同无参数方法一样,除了能设置what和obj属性值。
post(Runnable r):使得Runnable r添加到消息队列。
postAtFrontOfQueue(Runnable r):提交一个消息到一个实现了Runnable的对象
postAtTime(Runnable r,long uptimeMillis):使得Runnable r被添加到消息队列,在由uptimeMills给定的特定时间
postAtTime(Runnable r , Object token, long uptimeMills):使得Runnable r添加到消息队列,在由uptimeMills给定的特定时间运行。
postDelayer(Runnable r , long delayMillis):使得Runnable r被添加到队列,在由指定的时间后运行。
removeCallbacks(Runnable r):移除在消息队列中的没有提交的Runnable r
removeCallbacks(Runnable r,Object token):移除在消息队列中使用Object 的token的没有提交的Runnable r.
removeCallbacksAndMessage(Object token):移除在回调函数中没有提交的消息且发送消息的obj是token
voidremoveMessages(int what)
Remove any pending posts of messages with code 'what' that are in the message queue.
voidremoveMessages(int what,Objectobject)
Remove any pending posts of messages with code 'what' and whose obj is 'object' that are in the message queue.
booleansendEmptyMessage(int what)
Sends a Message containing only the what value.
booleansendEmptyMessageAtTime(int what, long uptimeMillis)
Sends a Message containing only the what value, to be delivered at a specific time.
booleansendEmptyMessageDelayed(int what, long delayMillis)
Sends a Message containing only the what value, to be delivered after the specified amount of time elapses.
booleansendMessage(Messagemsg)
Pushes a message onto the end of the message queue after all pending messages before the current time.
booleansendMessageAtFrontOfQueue(Messagemsg)
Enqueue a message at the front of the message queue, to be processed on the next iteration of the message loop.
booleansendMessageAtTime(Messagemsg, long uptimeMillis)
Enqueue a message into the message queue after all pending messages before the absolute time (in milliseconds)uptimeMillis.
booleansendMessageDelayed(Messagemsg, long delayMillis)
Enqueue a message into the message queue after all pending messages before (current time + delayMillis).
Returns a string containing a concise, human-readable description of this object.