大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title. 首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:
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执行不同的任务。 所以我们修改后的代码如下:
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 ++;      }  }  
本文章适合初学者学习!


更多相关文章

  1. 开发 Android 应用程序 常见问题 FAQ
  2. 解决国行安卓(Android)手机无谷歌(Google)服务的一个参考方法
  3. Android学习手记三:完善程序!
  4. Android sdk在android studio中消失且编译不了程序
  5. Android在高jar包版本的工程中修改方法
  6. 《Android程序设计》一3.9 把软件移植到Android中
  7. Android静态变量的生命周期 简单介绍
  8. [置顶] 杂谈——Android从启动到程序运行发生的事情

随机推荐

  1. Spring Boot 工程集成全局唯一ID生成器 V
  2. Eureka Server 开启Spring Security Basi
  3. 微信小程序入门与实战-全新版
  4. 注册中心 Eureka 源码解析 —— Eureka-S
  5. 分布式作业 Elastic-Job-Lite 源码分析
  6. EVCache缓存在 Spring Boot中的实战
  7. NodeManager无法启动报错:missing files;e
  8. Eureka Server启用 https服务指北
  9. 分布式作业系统 Elastic-Job-Lite 源码分
  10. 基于代理的数据库分库分表框架 Mycat实践