android Handler概念理解与运用

android Handler概念理解与运用

ID:45096514

大小:46.50 KB

页数:7页

时间:2019-11-09

android Handler概念理解与运用_第1页
android Handler概念理解与运用_第2页
android Handler概念理解与运用_第3页
android Handler概念理解与运用_第4页
android Handler概念理解与运用_第5页
资源描述:

《android Handler概念理解与运用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、android:Handler概念理解与运用android.os.Handler是AndroidSDK中处理定时操作的核心类。通过Handler类,可以提交和处理一个Runnable对象。这个对象的run方法可以立刻执行,也可以在指定时间之后执行(可以称为预约执行)。     handler类允许你发送消息和处理线程消息队列中的消息及runnable对象。handler实例都是与一个线程和该线程的消息队列一起使用,一旦创建了一个新的handler实例,系统就把该实例与一个线程和该线程的消息队列捆绑起来,这将可以发送消息和run

2、nable对象给该消息队列,并在消息队列出口处处理它们。      handler类有两种主要用途:        1、按照时间计划,在未来某时刻,对处理一个消息或执行某个runnable实例。        2、把一个对另外线程对象的操作请求放入消息队列中,从而避免线程间冲突。      时间类消息通过如下方法使用:         post(Runnable)         postAtTime(Runnable,long)         postDelayed(Runnable,long)         sendE

3、mptyMessage(int)        sendMessage(Message)        sendMessageAtTime(Message,long)        andsendMessageDelayed(Message,long)     methods.post之类函数可以传输一个runnable对象给消息队列,并在到达消息队列后被调用。sendmessage之类函数可以传送一个包含数据的message对象,该message对象可以被Handler类的handleMessage(Message)方法所处

4、理。       post之类函数和sendmessage之类的函数都可以指定消息的执行时机,是立即执行、稍后一段时间执行,还是在某个确定时刻执行。这可以用来实现超时、消息或其他时间相关的操作。     当一个进程启动时,主线程独立执行一个消息队列,该队列管理着应用顶层的对象(如:activities、broadcastreceivers等等)和所有创建的窗口。你可以创建自己的一个线程,并通过handler来与主线程进行通信。这可以通过在新的线程中调用主线程的handler的post和sendmessage操作来实现。    

5、       Handler类主要可以使用如下3个方法来设置执行Runnable对象的时间:[plain]viewplaincopyprint?1.//立即执行Runnable对象  2.public final boolean post(Runnable r);  1.//在指定时间uptimeMillis 后执行Runnable对象  2.public final boolean postAtTime(Runnable r,long uptimeMillis);  3.//在指定的时间间隔delayMillis 执行Run

6、nable对象  4.public final boolean postDelayed(Runnable r,long delayMillis);       从上面的三个方法可以看出,第一个参数的类型都是Runnable,因此,在调用这三个方法之前,需要有一个实现Runnable接口的类,Runnable接口的代码如下:[html]viewplaincopyprint?1.public interface Runnable  2.{  3.     public voic run();//线程要执行的方法  4.}     

7、  在Runnable接口中只有一个Run方法,该方法为线程执行方法。[plain]viewplaincopyprint?1.Handler handler = new Handler();  2.handler.postDelayed(This,5000);       如果想在5秒内停止记时可以用如下代码:     [html]viewplaincopyprint?1.handler.removeCallbacks(this);       除此之外还可以用postAtTime方法指定未来的某一个精确时间来执行Runnab

8、le对象,代码如下:[html]viewplaincopyprint?1.Handler handler=new Handler();  2.handler.postAtTime(new RunToast(this){  },android.os.SystemClock.up

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。