大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.

首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:

[java]view plaincopy
  1. packagecom.android.tutor;importjava.util.Timer;importjava.util.TimerTask;importandroid.app.Activity;importandroid.os.Bundle;publicclassHandlerDemoextendsActivity{//title为setTitle方法提供变量,这里为了方便我设置成了int型privateinttitle=0;publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Timertimer=newTimer();timer.scheduleAtFixedRate(newMyTask(),1,5000);}privateclassMyTaskextendsTimerTask{@Overridepublicvoidrun(){setTitle("WelcometoMrWei'sblog"+title);title++;}}}

然而当我们执行程序,并不能达到我们预期的效果,所以Android 引进了Handler 这个特殊的类,可以说它是Runnable和Activity交互的桥梁,所以我们只要在run方法中发送Message,而在Handler里,通过不同的Message执行不同的任务。

所以我们修改后的代码如下:

[java]view plaincopy
  1. packagecom.android.tutor;importjava.util.Timer;importjava.util.TimerTask;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;publicclassHandlerDemoextendsActivity{//title为setTitle方法提供变量,这里为了方便我设置成了int型privateinttitle=0;privateHandlermHandler=newHandler(){publicvoidhandleMessage(Messagemsg){switch(msg.what){case1:updateTitle();break;}};};publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Timertimer=newTimer();timer.scheduleAtFixedRate(newMyTask(),1,5000);}privateclassMyTaskextendsTimerTask{@Overridepublicvoidrun(){Messagemessage=newMessage();message.what=1;mHandler.sendMessage(message);}}publicvoidupdateTitle(){setTitle("WelcometoMrWei'sblog"+title);title++;}}

下面我们看一下效果图:

更多相关文章

  1. 屏幕触点
  2. 关于Activity的少许细节
  3. 简单实现Android绘图板
  4. android应用程序--计算器
  5. 下载Android(安卓)ADT时找不到org.eclipse.wst.sse.core 0.0.0的
  6. Android(安卓)程序安装地址问题
  7. 关于Android中Animation的停止
  8. Android获得所有存储设备位置的最佳方法
  9. Android(安卓)软键盘盖住输入框或者布局的解决办法

随机推荐

  1. Android 新手入门
  2. [Android(安卓)N]MediaRecorder系列之初
  3. android 3D系列之基本概念篇
  4. 第16章、布局Layouts之GridLayout网格布
  5. Android 基于Socket的聊天应用http://www
  6. 借助“手说”免费应用软件,实现中文朗读(An
  7. Activity状态保存增强版
  8. Android中module引入aar的方法
  9. Android(安卓)JNI入门第二篇——Java参数
  10. Android秋招提前批:大厂三面对答如流,原来