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).

StringtoString()

Returns a string containing a concise, human-readable description of this object.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容