`

android中通过looper+handler方式在子线程中刷新UI

阅读更多

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线程和子线程的通信

    Looper和Handler实现UI线程和子线程的通信

    Android Handler Looper Message 使用示例

    在主线程即UI线程外,新建一个Looper线程,并用Messenger和Handler来处理message和posted runnable。程序中,在负线程中默认加了一个3s的线程等来,来帮助理解sent message和post runnable之间的同步机制。所以在按...

    android 更新 UI 线程 handler

    简单实现更新UI的操作,仅供学习参考 这里用到handler类,runnable类,按钮的点击事件

    了解Android核心:Looper,Handler和HandlerThread

    Android中的主线程由 looper 和 Handlers 组成。所以了解创建无阻碍的响应式 UI 很重要。 MessageQueue 是一个队列,其中包含消息任务。 Handler 在 MessageQueue 中以任务形式排队,Looper 在任务出现时执行它们...

    Handler与AsyncTask,Looper使用示例

    Handler,AsyncTask,Looper自定义线程使用示例,自定义线程与UI线程交互,访问UI线程控件

    Handler+Looper+MessageQueue+Message机制

    当子线程中进行耗时操作后需要更新UI时,通过Handler将有关的UI操作切换到主线程中执行。 四要素: Message(消息):需要被传递的消息,其中包含了消息标识(what),消息处理数据和处理对象(arg1,arg2,obj),发送...

    android+多线程机制的讲解和例子

    1.Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。 2.Handler:你可以构造Handler对象来与Looper沟通...在你的应用程序里,可以定义Handler的子类别来接收Looper所送出的消息。

    Android后台线程和UI线程通讯实例

    本节向你展示如何在任务中发送数据给UI线程里的对象,这个特性允许你在后台线程工作,完了在UI线程展示结果。 在UI线程定义一个Handler Handler是Android系统线程管理框架里的一部分。一个Handler对象接收消息,并且...

    Android 线程开发 开发实例

    在Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新 概念。我们的主线程(UI线程)就是一个消息循环的线程。针对这种消息循环的机制,我们...

    Android消息处理机制Looper和Handler详解

    使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。 MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义...

    Android 线程之自定义带消息循环Looper的实例

    Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,...

    handler的使用案例

    demo01: 通过handler.post()的方法可以更新ui demo02: 一秒钟切换一张图片 demo03: 霓虹灯动态效果的显示 demo04: 倒计时,停止倒计时 ...demo11: 自己写的looper线程,handler和线程绑定 demo12: 更新ui的四种方式

    Android的线程使用来更新UI

    Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等

    深入Android Handler,MessageQueue与Looper关系

    一说到Android的消息机制,自然就会联想到Handler,我们知道Handler是Android消息机制的上层接口,因此我们在开发过程中也只需要和Handler交互即可,很多人认为Handler的作用就是更新UI,这也确实没错,但除了更新UI...

    深入理解Android中的Handler异步通信机制

    所以会创建子线程来执行耗时任务,当子线程执行完毕需要通知UI线程并修改界面时,不可以直接在子线程修改UI,怎么办? 解决方法:Message Queue机制可以实现子线程与UI线程的通信。 该机制包括Handler、Message ...

    android使用handlerthread创建线程示例

    在android开发中,一说起线程的使用,很多人马上想到new Thread(){…}.start()这种方式。这样使用当然可以,但是多次使用这种方式,会创建多个匿名线程。使得程序运行起来越来越慢。因此,可以考虑使用一个Handler来...

    Android应用程序消息处理机制

    这个PPT讲Android应用程序线程消息循环原理,主要涉及到Handler和Looper两个类,以及根据消息循环的不同使用场景,总结出三种线程使用模型。掌握Android应用程序消息处理机制,有助于我们熟练地使用同步和异步编程,...

    swt-async-handler-1.0

    但是该方法只是用于接收异步线程消息,如果你在该方法中做过多的事情同样会造成UI线程的阻塞。 因此,笔者模仿android的异步访问方式,实现SWT下的Handler机制。通过向handler发送消息,handler接受到消息以后响应...

    [安卓开源项目]Android-炫酷的3D音乐播放器-各种特效OpenGL.zip

    毕设安卓源码,分享给需要的人。 对于现阶段的Android开发而言,技术深度很大一部分就体现在对Android系统底层的理解上。只有理解了底层的运作,我们才能更全面的掌握应用的...如何更新UI,为什么子线程不能更新UI?(美

    [Android实例] 面试题集.zip

    [Android实例] 面试题集 需要的请下载 对于现阶段的Android开发而言,技术深度很大一部分就体现在对Android系统底层的理解上。只有理解了底层的运作,我们才能更全面的掌握应用的行为、...如何更新UI,为什么子线程不

Global site tag (gtag.js) - Google Analytics