`

Android Handler的使用!!!

阅读更多
大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.
首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:
view plaincopy to clipboardprint?
package com.android.tutor; 
import java.util.Timer; 
import java.util.TimerTask; 
import android.app.Activity; 
import android.os.Bundle; 
public class HandlerDemo extends Activity { 
     
    //title为setTitle方法提供变量,这里为了方便我设置成了int型 
    private int title = 0; 
     
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
         
        Timer timer = new Timer(); 
        timer.scheduleAtFixedRate(new MyTask(), 1, 5000); 
    } 
         
    private class MyTask extends TimerTask{ 
        @Override 
        public void run() { 
             
            setTitle("Welcome to Mr Wei's blog " + title); 
            title ++; 
        }    
    } 

package
com.android.tutor;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
public class HandlerDemo extends Activity {
   
//title为setTitle方法提供变量,这里为了方便我设置成了int型
private int title = 0;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
    }
       
    private class MyTask extends TimerTask{
@Override
public void run() {

setTitle("Welcome to Mr Wei's blog " + title);
title ++;

    }
}
然而当我们执行程序,并不能达到我们预期的效果,所以Android 引进了Handler 这个特殊的类,可以说它是Runnable和Activity交互的桥梁
,所以我们只要在run方法中发送Message,而在Handler里,通过不同的Message执行不同的任务。
所以我们修改后的代码如下:
view plaincopy to clipboardprint?
package com.android.tutor; 
import java.util.Timer; 
import java.util.TimerTask; 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
public class HandlerDemo extends Activity { 
     
    //title为setTitle方法提供变量,这里为了方便我设置成了int型 
    private int title = 0; 
     
    private Handler mHandler = new Handler(){ 
         
        public void handleMessage(Message msg) { 
            switch (msg.what) { 
            case 1: 
                updateTitle(); 
                break; 
            } 
        }; 
    }; 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
         
        Timer timer = new Timer(); 
        timer.scheduleAtFixedRate(new MyTask(), 1, 5000); 
    } 
         
    private class MyTask extends TimerTask{ 
        @Override 
        public void run() { 
             
            Message message = new Message(); 
            message.what = 1; 
            mHandler.sendMessage(message); 
             
        }    
    } 
     
     
    public void updateTitle(){ 
         
        setTitle("Welcome to Mr Wei's blog " + title); 
        title ++; 
    } 

package
com.android.tutor;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
public class HandlerDemo extends Activity {
   
//title为setTitle方法提供变量,这里为了方便我设置成了int型
private int title = 0;

private Handler mHandler = new Handler(){

public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
updateTitle();
break;
}
};
};
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
    }
       
    private class MyTask extends TimerTask{
@Override
public void run() {

Message message = new Message();
message.what = 1;
mHandler.sendMessage(message);


    }
   
   
    public void updateTitle(){
   
    setTitle("Welcome to Mr Wei's blog " + title);
title ++;
    }
}
分享到:
评论

相关推荐

    模拟Android Handler机制Demo

    【Android Handler机制】是Android应用程序中用于线程间通信的核心组件,它与Looper和Message紧密配合,实现消息的发送、处理以及线程间的同步。在Android应用开发中,尤其是涉及到UI更新时,Handler机制显得尤为...

    android-Handler的使用

    【Android Handler 使用详解】 Handler 是 Android 平台中用于处理线程间通信的关键组件,尤其在涉及 UI(用户界面)更新时,它扮演着至关重要的角色。在 Android 应用程序启动时,系统会默认创建一个主线程,也...

    androidHandler测试的demo

    在“androidHandler测试的demo”中,我们可以预期包含以下内容: 1. 创建自定义`Handler`子类:这个子类可能重写了`handleMessage(Message msg)`方法,根据`msg.what`的值执行不同的操作,比如更新UI元素或执行特定...

    Android的Handler使用方法总结

    Android的Handler使用方法总结,不错的文档,跟大家分享分享

    android demo,使用Handler的postDelay,Runnable run实现延时3秒的splash。

    本示例中的“android demo”就是关于如何利用Handler的`postDelayed`方法和`Runnable`接口来实现一个延时3秒的Splash Screen。下面将详细解释这个过程以及涉及的技术点。 1. **Handler**: Handler是Android中处理...

    Android Handler传值的demo

    使用`Handler`的`sendMessage(Message msg)`或`sendMessageDelayed(Message msg, long delayMillis)`方法将`Message`发送到消息队列。这些方法会将消息添加到与`Handler`关联的`Looper`的消息队列中。 5. **Looper...

    Android handler message奇怪用法详解

    1. **静态内部类与Handler**:为避免内存泄漏,可以使用静态内部类来创建Handler实例,这样即使外部Activity或Fragment被销毁,Handler也不会持有它们的引用。 2. **弱引用与Handler**:使用WeakReference包裹...

    Android Handler类详解

    Android Handler类详解 Android Handler类详解 Android Handler类详解 Android Handler类详解

    android handler例子

    在Android开发中,`Handler`是一个至关重要的组件,它用于处理与线程通信相关的任务,尤其是在主线程(UI线程)和工作线程之间。`Handler`、`Looper`和`Message`三者共同构成了Android的消息传递机制。下面将详细...

    Android_Handler详解(一)

    总结起来,Handler是Android中进行线程间通信的重要工具,合理使用它可以有效地提升应用的性能和用户体验。在实际开发中,应结合使用Handler、Looper和Thread,以实现高效的多线程编程。在后续章节,我们将更深入地...

    android 中Handler 的几种写法

    通过理解以上知识点,开发者可以灵活地在Android应用中使用`Handler`进行线程间通信,高效地处理异步任务和UI更新。在实际开发中,结合`Handler`、`Looper`、`Thread`以及`Runnable`,可以构建出复杂而稳定的多线程...

    android handler runnable使用实例(关键是内部run中停止)

    在Android应用开发中,Handler、Runnable和Looper是三个非常重要的组件,它们构成了Android的消息处理机制。这个机制使得UI线程可以非阻塞地处理来自其他线程的消息,从而避免了UI冻结,提升了用户体验。下面我们将...

    android handler的一些测试

    在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信的重要组件,特别是用于主线程(UI线程)与其他工作线程之间的交互。标题“android handler的一些测试”暗示我们将探讨`Handler`如何在多线程环境...

    Android Handler消息处理顺序分析

    在Android开发中,Handler、Looper和Message是实现线程间通信的重要组件,它们共同构建了Android的消息处理机制。本文将详细分析Android Handler消息处理的顺序,以及如何利用这些组件进行异步操作。 首先,理解...

    Android中handler的使用

    总结来说,Handler是Android中处理多线程和UI同步的核心工具,理解其工作原理和使用方法对于开发高效、稳定的Android应用至关重要。通过熟练掌握Handler,开发者可以更好地控制应用的执行流程,确保UI响应性和性能。...

    老罗android Handler综合练习 图文混排 服务器端源代码

    总结来说,这个压缩包文件提供了一个完整的Android应用开发练习案例,涵盖了Handler的使用、图文混排的实现以及服务器端的JSON、MySQL和JSP技术。对于初学者来说,这是一个很好的实践平台,能够帮助他们深入理解...

    【Android开发入门】Android线程之Handler

    msg.obj = "Hello, Handler!"; // 设置传递的数据 handler.sendMessage(msg); ``` 3. 延迟发送:`sendMessageDelayed()`方法可以设定延迟多久后发送消息,这对于定时任务非常有用。 五、线程间通信 Handler的主要...

    Android中的Handler的具体用法

    本文将深入探讨`Handler`的工作原理、如何使用以及它在Android应用程序中的实际应用。 `Handler`机制是Android系统为了实现线程间通信而设计的一种模式,主要包含三部分:`Handler`、`Message`和`Looper`。`Handler...

    Android Handler模拟进度条更新

    本篇文章将深入探讨如何使用Android Handler来模拟进度条更新。 首先,理解Handler、Looper和Message的基本概念: 1. **Handler**:它是消息处理对象,负责发送和处理Message。在主线程中创建Handler实例后,它...

    Android_Handler消息处理机制

    在Android系统中,Handler、Message和Looper构成了一个关键的异步通信机制,即Handler消息处理机制。这个机制允许Android应用程序在不同的线程间传递消息,处理UI更新等操作,是多线程编程中的重要组成部分。下面...

Global site tag (gtag.js) - Google Analytics