大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title. 首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示: view plain copy to clipboard print ?
  1. package com.android.tutor;

  2. import java.util.Timer;

  3. import java.util.TimerTask;

  4. import android.app.Activity;

  5. import android.os.Bundle;

  6. publicclass HandlerDemo extends Activity {

  7. //title为setTitle方法提供变量,这里为了方便我设置成了int型

  8. privateint title = 0;

  9. publicvoid onCreate(Bundle savedInstanceState) {

  10. super.onCreate(savedInstanceState);

  11. setContentView(R.layout.main);

  12. Timer timer = new Timer();

  13. timer.scheduleAtFixedRate(new MyTask(), 1, 5000);

  14. }

  15. privateclass MyTask extends TimerTask{

  16. @Override

  17. publicvoid run() {

  18. setTitle("Welcome to Mr Wei's blog " + title);

  19. title ++;

  20. }

  21. }

  22. }

然而当我们执行程序,并不能达到我们预期的效果,所以Android 引进了Handler 这个特殊的类,可以说它是Runnable和Activity交互的桥梁 ,所以我们只要在run方法中发送Message,而在Handler里,通过不同的Message执行不同的任务。 所以我们修改后的代码如下: view plain copy to clipboard print ?
  1. package com.android.tutor;

  2. import java.util.Timer;

  3. import java.util.TimerTask;

  4. import android.app.Activity;

  5. import android.os.Bundle;

  6. import android.os.Handler;

  7. import android.os.Message;

  8. publicclass HandlerDemo extends Activity {

  9. //title为setTitle方法提供变量,这里为了方便我设置成了int型

  10. privateint title = 0;

  11. private Handler mHandler = new Handler(){

  12. publicvoid handleMessage(Message msg) {

  13. switch (msg.what) {

  14. case1:

  15. updateTitle();

  16. break;

  17. }

  18. };

  19. };

  20. publicvoid onCreate(Bundle savedInstanceState) {

  21. super.onCreate(savedInstanceState);

  22. setContentView(R.layout.main);

  23. Timer timer = new Timer();

  24. timer.scheduleAtFixedRate(new MyTask(), 1, 5000);

  25. }

  26. privateclass MyTask extends TimerTask{

  27. @Override

  28. publicvoid run() {

  29. Message message = new Message();

  30. message.what = 1;

  31. mHandler.sendMessage(message);

  32. }

  33. }

  34. publicvoid updateTitle(){

  35. setTitle("Welcome to Mr Wei's blog " + title);

  36. title ++;

  37. }

  38. }

下面我们看一下效果图:


更多相关文章

  1. Android(安卓)adapter has changed解决方法
  2. android帮助文档打开慢的三种解决方法
  3. 小米开源文件管理器MiCodeFileExplorer-源码研究(9)-入口分析
  4. android图库竖屏不显示status bar的解决方法
  5. 新建Android项目
  6. Android(安卓)处理内存泄露的方法
  7. 获取应用程序中的Activity,Service等
  8. Unity3D android findviewbyid返回 null
  9. Android中的SurfaceFlinger和Choreographer

随机推荐

  1. Android中AIDL的使用过程
  2. 【Android】对话框AlertDialog的使用(一)
  3. android 内存分析(MAT工具的使用)
  4. 27、从头学Android之多媒体--使用VideoVi
  5. system image file too large for device
  6. Android(安卓)Activity启动流程
  7. 如何解决Eclipse中Android(安卓)代码自动
  8. Android中双击返回键退出应用实例代码
  9. Android面试汇总文章
  10. 实现activity全屏显示