`
zyc1006
  • 浏览: 131912 次
  • 性别: 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高手进阶教程之AndroidHandler的使用.pdf

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

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

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

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

    Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示: 代码如下:package ...

    老罗android开发视频教程全集百度网盘下载

    《老罗Android视频教程(第一季)》的视频一共分为15个章节, 涵盖了Android入门、常用UI布局介绍、HTTP编程、 XML与Json数据解析、JDBC与Web编程、常用UI控件、 数据储存与文件操作、对话框、通知、菜单、 ...

    android mars视频代码 Handler 源码 ProgressBarHandler

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler ProgressBarHandler(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    android开发教程之handler异步更新ui

    主要介绍了android使用handler异步更新ui的示例,大家参考使用吧

    android mars视频代码 Handler 源码 HandlerTest

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    Android开发教程&笔记

    一本基础的android开发教程,包括了主要Activity,handler等的使用,以及其他基控件的使用。教程内容很清晰

    android mars视频代码 Handler 源码 HandlerTest2

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest2(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    android开发教程之handle实现多线程和异步处理

    这次浅谈一下Handler,为什么会出现Handler这个功能特性呢?首先,在之前的基本控件,基本都是在Activity的onCreate(Bundle savedInstanceState)方法中调用和处理的,但是,在有些情况,比如在网络上下载软件等一些...

    基于ARM Cortex-A8和Android 4.x的联动报警系统 (Android 、A8、Linux、驱动、NDK)

    第一部分课程从最基础的Android应用开发环境搭建开始,简单讲解了Android界面及事件处理之后,深入剖析Android Handler多线程机制,重点讲解Android NDK应用层与驱动的通信; 第二部分内容,先简单讲解Android系统...

    基于Android Studio制作的一款打地鼠小游戏

    Android Studio的小作业,学生可用,代码有详细的注释,简单易用。整体界面采用FraemLayout布局方式,界面中包含ImageView,TextView控件(对就两个控件,加上布局的也就三个)。 可能JdK版本不一需要自行调试,地鼠...

    android多线程机制

    android多线程机制教程 android多线程机制 android多线程机制 android多线程机制

    android开发教程之子线程中更新界面

    每个Handler对象与创建它的线程相关联,并且每个Handler对象只能与一个线程相关联。Handler一般有两种用途:1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器。2)线程间通信。在Android的应用启动...

    ARM Cortex-A8和Android 4.x联动报警系统

    本教程共分五大部分内容,1 Android应用开发 2 Android系统移植 3 Cortex a8裸机接口开发 4 Android设备驱动开发 5 综合项目实战。第一部分课程从最基础的Android应用开发环境搭建开始,简单讲解了Android界面及事件...

    老罗android视频开发源码和ppt经典

    一、Android入门介绍 视频教程 1.1 android系统介绍 1.2 android系统框架的介绍 1.3 如何搭建android开发环境 1.4 android生命周期的介绍 1.5 android使用全局变量传递数据 1.6 android使用剪切板传递数据 1.7 意图...

    Android学习系列教程实例.pdf

    Android 学习文档总结 ................... 1 DevDiv 推荐资源 ........................ 2 Windows 8 ........................................................... 2 iOS .........................................

Global site tag (gtag.js) - Google Analytics