`
zyc1006
  • 浏览: 133867 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android Handler 教程

 
阅读更多

大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.

 

首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:

 

 

  1. package com.android.tutor;  
  2. import java.util.Timer;  
  3. import java.util.TimerTask;  
  4. import android.app.Activity;  
  5. import android.os.Bundle;  
  6. public class HandlerDemo extends Activity {  
  7.       
  8.     //title为setTitle方法提供变量,这里为了方便我设置成了int型  
  9.     private int title = 0;  
  10.       
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.main);  
  14.           
  15.         Timer timer = new Timer();  
  16.         timer.scheduleAtFixedRate(new MyTask(), 15000);  
  17.     }  
  18.           
  19.     private class MyTask extends TimerTask{  
  20.         @Override  
  21.         public void run() {  
  22.               
  23.             setTitle("Welcome to Mr Wei's blog " + title);  
  24.             title ++;  
  25.         }     
  26.     }  
  27. }  

 

 

然而当我们执行程序,并不能达到我们预期的效果,所以Android 引进了Handler 这个特殊的类,可以说它是Runnable和Activity交互的桥梁

,所以我们只要在run方法中发送Message,而在Handler里,通过不同的Message执行不同的任务。

 

所以我们修改后的代码如下:

 

 

  1. package com.android.tutor;  
  2. import java.util.Timer;  
  3. import java.util.TimerTask;  
  4. import android.app.Activity;  
  5. import android.os.Bundle;  
  6. import android.os.Handler;  
  7. import android.os.Message;  
  8. public class HandlerDemo extends Activity {  
  9.       
  10.     //title为setTitle方法提供变量,这里为了方便我设置成了int型  
  11.     private int title = 0;  
  12.       
  13.     private Handler mHandler = new Handler(){  
  14.           
  15.         public void handleMessage(Message msg) {  
  16.             switch (msg.what) {  
  17.             case 1:  
  18.                 updateTitle();  
  19.                 break;  
  20.             }  
  21.         };  
  22.     };  
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.main);  
  26.           
  27.         Timer timer = new Timer();  
  28.         timer.scheduleAtFixedRate(new MyTask(), 15000);  
  29.     }  
  30.           
  31.     private class MyTask extends TimerTask{  
  32.         @Override  
  33.         public void run() {  
  34.               
  35.             Message message = new Message();  
  36.             message.what = 1;  
  37.             mHandler.sendMessage(message);  
  38.               
  39.         }     
  40.     }  
  41.       
  42.       
  43.     public void updateTitle(){  
  44.           
  45.         setTitle("Welcome to Mr Wei's blog " + title);  
  46.         title ++;  
  47.     }  
  48. }  

 

 

下面我们看一下效果图:

 

分享到:
评论

相关推荐

    Android高手进阶教程与Android基础教程

    Android高手进阶教程之----Android Handler的使用!!! .doc Android高手进阶教程之----Android Launcher抽屉类SlidingDrawer的使用.doc Android高手进阶教程之----Android Location的使用!! .doc Android高手进阶...

    Android高手进阶教程之AndroidHandler的使用.pdf

    在Android开发中,`Handler`是一个非常重要的组件,它用于处理来自其他线程的消息,特别是在UI线程中更新用户界面时。本节我们将深入探讨`Handler`的使用,以及如何解决像更新标题这样的定时任务。 首先,让我们...

    Android Studio通过Handler制作简单的计时器

    本教程将介绍如何使用Android Studio和Handler组件来创建一个简单的计时器应用。Handler是Android中的一个关键组件,它允许开发者在不同的线程之间发送和处理消息,从而实现异步操作。 首先,我们需要了解Android ...

    Android开发教程笔记完全版 pdf

    由于主线程不允许执行耗时操作,因此Android引入了AsyncTask、IntentService、Handler/Looper机制以及现在推荐的协程(Coroutines)来实现后台任务。 十、权限管理 Android系统采用权限模型来保护用户数据安全。...

    使用Handler实现异步更新UI例子

    本教程将重点讲解如何使用Handler机制来实现在后台线程中执行任务并在主线程中更新UI。 Handler是Android中一种用于线程间通信的重要工具,它允许你在不同的线程之间发送和处理消息。Handler的运作机制基于Message...

    android开发教程之android的handler使用方法

    在本教程中,我们将深入探讨`Handler`的工作原理及其在实际应用中的使用。 首先,让我们看一个简单的例子,假设我们想要每隔5秒钟更新一次应用程序的Title。在不了解`Handler`的情况下,开发者可能会使用`Timer`和`...

    Android开发教程基础版 Android中文开发教程

    《Android开发教程基础版》是一本专为初学者设计的Android应用开发指南,旨在帮助读者快速掌握Android开发的基础知识和技能。本教程以其清晰易懂的特性,为想要踏入Android开发领域的学习者提供了全面的指导。 一、...

    最详细的Android开发教程实例

    本教程"最详细的Android开发教程实例"旨在提供一个全面的学习路径,帮助新手和有经验的开发者深入理解Android开发的核心概念和技术。 【Android开发入门】: Android开发入门是学习Android编程的第一步。"101- ...

    Android、教程<经典> 10 Android通用应用

    这个教程系列——“Android、教程&lt;经典&gt; 10 Android通用应用”旨在帮助开发者深化对Android平台的理解,提升开发效率,构建更高质量的应用。以下是对这个系列教程中可能涉及的一些核心知识点的详细解释: 1. **...

    android 基础教程(第三版)配套源码

    《Android基础教程(第三版)》是一本深受开发者欢迎的指南,它涵盖了Android开发的核心概念和技术,旨在帮助初学者和有经验的开发者更好地理解和实践Android应用开发。这本书的配套源码提供了丰富的实例,使得读者...

    Android基础教程 第3版 修订版

    《Android基础教程 第3版 修订版》是学习Android开发的重要参考资料,针对初学者和有一定经验的开发者都具有很高的参考价值。本教程深入浅出地介绍了Android开发的基础知识,包括环境搭建、应用结构、UI设计、数据...

    经典Android开发教程奉献

    这篇教程集合了全面的Android开发知识,旨在帮助初学者和有经验的开发者深入理解平台的工作原理,提升应用开发技能。以下是本教程涉及的一些关键知识点: 1. **环境搭建**:首先,你需要安装Java Development Kit ...

    Android基础教程+源码

    10. **多线程**:Android主线程负责UI更新,因此需要学习如何使用AsyncTask、Handler、Thread或Service来处理耗时操作,避免阻塞UI。 11. **第三方库**:介绍如何集成和使用常见的Android开源库,如Retrofit进行...

    Android源码与教程

    9. **异步编程与线程管理**:如Handler、Looper、AsyncTask、ThreadPoolExecutor等,它们是Android中的多线程解决方案。源码分析能够帮助我们更高效地管理并发任务,避免ANR(应用无响应)问题。 10. **Android ...

    android实用教程

    《Android实用教程》是一本专为开发者和爱好者设计的指南,深入浅出地讲解了Android平台的开发技术。本教程涵盖了Android开发的各个方面,旨在帮助读者掌握构建Android应用的核心技能。在这一千余字的篇幅中,我们将...

    Android编程入门教程andbook与Android开发教程笔记完全版

    2. **异步处理和线程**:Android主线程不适宜进行耗时操作,因此需要使用AsyncTask、Handler、Looper或者Thread和ThreadPoolExecutor来管理后台任务。 3. **网络编程**:Android应用常常需要访问网络,学习者会学习...

    android基础教程和源码(非常实用的入门教程)

    本教程旨在为初学者提供一个全面的Android开发入门指南,通过源码分析,帮助学习者快速掌握Android开发的基本技能。 首先,Android的基础知识包括环境搭建。你需要下载并安装Android Studio,它是官方推荐的集成...

    Android中文实战教程

    本教程《Android中文实战教程》旨在为初学者和有一定经验的开发者提供一个全面且易于理解的学习资源,帮助他们深入理解和掌握Android应用开发的核心技术。 首先,Android系统的基础架构包括Linux内核,这是整个系统...

    新版Android开发教程及笔记-完整版

    新版Android开发教程及笔记将涵盖Android系统的基本架构、应用程序生命周期管理以及UI设计等核心概念。 1. **Android系统架构**:Android系统分为应用层、应用框架层、系统运行库层和Linux内核层。开发者主要在应用...

Global site tag (gtag.js) - Google Analytics