大家好我们这一节讲的是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. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android上一些方法的区别和用法的注意事项
  5. android EditText设置不可写
  6. android实现字体闪烁动画的方法
  7. Android中dispatchDraw分析
  8. Android四大基本组件介绍与生命周期
  9. [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o

随机推荐

  1. 格式化输出的三种方式
  2. 流程控制之for循环
  3. 必看!java后端,亮剑诛仙(最全知识点)
  4. 解析Java横死之谜,气定神闲看花开花落
  5. 给我1万字,也讲不清Java内存排查。1万不行
  6. 集合类型内置方法
  7. Python与用户交互
  8. 想把Java代码写的更漂亮么?了解一下Try吧
  9. 将java进程转移到“解剖台”之前,法医都干
  10. 字典类型