大家好我们这一节讲的是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 ++;      }  }  

  

本文出自 http://weizhulin.blog.51cto.com/1556324/323922

更多相关文章

  1. Android 应用程序开关GPS
  2. Android-Jni线程(三)— JNI全局回调java方法
  3. Android UncaughtExceptionHandler 记录异常并重启程序
  4. Android和蓝牙GPS结合的方法
  5. [ ]在Android系统上使用busybox——最简单的方法
  6. Android应用程序的自动更新升级(自身升级、通过tomcat)
  7. Android中的文件的读取方法

随机推荐

  1. android init进程解析init.rc过程
  2. Android学习笔记_34_自定义窗口标题
  3. Android之View和ViewGroup事件分发
  4. android topic:Resource Types
  5. Android(安卓)7.0软键盘隐藏问题
  6. 布局动画 属性初始 android:animateLayou
  7. Android 根据 Url 跳转应用
  8. Android 3.0 r1 API中文文档(108) ―― E
  9. 更新Android SDK Manager Mac下修改hosts
  10. Android反编译工具:Apktool,支持Linux 、Wi