package com.saul;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
/**
* 通过looper+handler方式在子线程中刷新UI
* @author Saul
*
*/
public class UpdateTitle extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ModifyTitle modifyTitle=new ModifyTitle();
modifyTitle.start();
}
class ModifyTitle extends Thread{
TitleEventHandler handler;
public void run(){
Looper mainLooper=Looper.getMainLooper();
handler=new TitleEventHandler(mainLooper);
handler.removeMessages(0);
Message msg=null;
Long currentSecond;
Long previousSecond = 0l;
int time = 5;
while (true) {
currentSecond = (System.currentTimeMillis() / 1000) % 10;
if (currentSecond != previousSecond) {
time--;
if (time < 0) {
break;
}
msg=handler.obtainMessage(1, 1, 1,"当前还剩" + (time + 1) + "秒");
handler.sendMessage(msg);
previousSecond = currentSecond;
}
}
}
}
class TitleEventHandler extends Handler{
public TitleEventHandler() {
super();
}
public TitleEventHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
setTitle((String)msg.obj);
}
}
}
分享到:
相关推荐
Looper和Handler实现UI线程和子线程的通信
在主线程即UI线程外,新建一个Looper线程,并用Messenger和Handler来处理message和posted runnable。程序中,在负线程中默认加了一个3s的线程等来,来帮助理解sent message和post runnable之间的同步机制。所以在按...
简单实现更新UI的操作,仅供学习参考 这里用到handler类,runnable类,按钮的点击事件
Android中的主线程由 looper 和 Handlers 组成。所以了解创建无阻碍的响应式 UI 很重要。 MessageQueue 是一个队列,其中包含消息任务。 Handler 在 MessageQueue 中以任务形式排队,Looper 在任务出现时执行它们...
Handler,AsyncTask,Looper自定义线程使用示例,自定义线程与UI线程交互,访问UI线程控件
当子线程中进行耗时操作后需要更新UI时,通过Handler将有关的UI操作切换到主线程中执行。 四要素: Message(消息):需要被传递的消息,其中包含了消息标识(what),消息处理数据和处理对象(arg1,arg2,obj),发送...
1.Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。 2.Handler:你可以构造Handler对象来与Looper沟通...在你的应用程序里,可以定义Handler的子类别来接收Looper所送出的消息。
本节向你展示如何在任务中发送数据给UI线程里的对象,这个特性允许你在后台线程工作,完了在UI线程展示结果。 在UI线程定义一个Handler Handler是Android系统线程管理框架里的一部分。一个Handler对象接收消息,并且...
在Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新 概念。我们的主线程(UI线程)就是一个消息循环的线程。针对这种消息循环的机制,我们...
使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。 MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义...
Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,...
demo01: 通过handler.post()的方法可以更新ui demo02: 一秒钟切换一张图片 demo03: 霓虹灯动态效果的显示 demo04: 倒计时,停止倒计时 ...demo11: 自己写的looper线程,handler和线程绑定 demo12: 更新ui的四种方式
Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
一说到Android的消息机制,自然就会联想到Handler,我们知道Handler是Android消息机制的上层接口,因此我们在开发过程中也只需要和Handler交互即可,很多人认为Handler的作用就是更新UI,这也确实没错,但除了更新UI...
所以会创建子线程来执行耗时任务,当子线程执行完毕需要通知UI线程并修改界面时,不可以直接在子线程修改UI,怎么办? 解决方法:Message Queue机制可以实现子线程与UI线程的通信。 该机制包括Handler、Message ...
在android开发中,一说起线程的使用,很多人马上想到new Thread(){…}.start()这种方式。这样使用当然可以,但是多次使用这种方式,会创建多个匿名线程。使得程序运行起来越来越慢。因此,可以考虑使用一个Handler来...
这个PPT讲Android应用程序线程消息循环原理,主要涉及到Handler和Looper两个类,以及根据消息循环的不同使用场景,总结出三种线程使用模型。掌握Android应用程序消息处理机制,有助于我们熟练地使用同步和异步编程,...
但是该方法只是用于接收异步线程消息,如果你在该方法中做过多的事情同样会造成UI线程的阻塞。 因此,笔者模仿android的异步访问方式,实现SWT下的Handler机制。通过向handler发送消息,handler接受到消息以后响应...
毕设安卓源码,分享给需要的人。 对于现阶段的Android开发而言,技术深度很大一部分就体现在对Android系统底层的理解上。只有理解了底层的运作,我们才能更全面的掌握应用的...如何更新UI,为什么子线程不能更新UI?(美
[Android实例] 面试题集 需要的请下载 对于现阶段的Android开发而言,技术深度很大一部分就体现在对Android系统底层的理解上。只有理解了底层的运作,我们才能更全面的掌握应用的行为、...如何更新UI,为什么子线程不