源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-05-16 18:09 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android开发教程之android的handler使用方法
Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title. 首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:
[u]复制代码[/u] 代码如下:
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执行不同的任务。 所以我们修改后的代码如下:
[u]复制代码[/u] 代码如下:
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 ++;      }  } 
下面我们看一下效果图: [img]http://files.jb51.net/file_images/article/201401/20140123152952.jpg?2014023153426[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部