欢迎来到天天文库
浏览记录
ID:45096514
大小:46.50 KB
页数:7页
时间:2019-11-09
《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
此文档下载收益归作者所有