大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.
首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:
view plaincopy to clipboardprint?
  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 plaincopy to clipboardprint?
  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. }

下面我们看一下效果图:

本文出自 “Android_Tutor” 博客,请务必保留此出处http://weizhulin.blog.51cto.com/1556324/323922

转载于:https://blog.51cto.com/yuzuolin/1331966

Android Handler的使用!!!相关推荐

  1. Android Handler介绍

    本文转自:http://www.cnblogs.com/keyindex/articles/1822463.html 前言 学习android一段时间了,为了进一步了解android的应用是如何设计开 ...

  2. Android Handler与Looper原理简析

    一直感觉自己简直就是一个弱智,最近越来越感觉是这样了,真的希望自己有一天能够认同自己,认同自己. 本文转载于:https://juejin.im/post/59083d7fda2f60005d14ef ...

  3. 详解Android Handler的使用

    我们进行Android开发时,Handler可以说是使用非常频繁的一个概念,它的用处不言而喻.本文就详细介绍Handler的基本概念和用法. Handler的基本概念           Handle ...

  4. Android handler Thread 修改UI Demo

    /*********************************************************************** Android handler Thread 修改UI ...

  5. android handler.removeCallbacksAndMessages(null)的使用

    今天,简单讲讲android如何使用  handler.removeCallbacksAndMessages(null). 这个其实很简单,之前我也写了一篇博客将关于handler.removeM ...

  6. android handler 的removeMessages的使用

    今天,简单讲讲android里如何使用handler的removeMessages函数. 这个很简单,之前自己也一致在使用,所以这里记录一下. 具体的如下: removeMessages会将handl ...

  7. epoll监听文件_介绍一下 Android Handler 中的 epoll 机制?

    介绍一下 Android Handler 中的 epoll 机制? 目录: IO 多路复用 select.poll.epoll 对比 epoll API epoll 使用示例 Handler 中的 e ...

  8. android message 代码,Android Handler移除Message详解及实例代码

    Android Handler移除Message详解 问题: 1.removeMessage(what)函数是否只能移除对应what值的Message? 2.对于Delayed发送的Message,能 ...

  9. android Handler的使用(一)

    Handler的使用(一) Handler基本概念: Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分逐个的在消息队列中将消息取出 ...

最新文章

  1. centos6.5_64 java 环境变量配置
  2. 每日一皮:如何把程序员骗到手!
  3. 桩身弹性压缩计算公式_基于非线性应力应变关系的桩身压缩量计算
  4. LeetCode-双指针-88. 合并两个有序数组
  5. [Google Guava] 12-数学运算
  6. java算法编程题_【java题目】考验你编程能力和算法的时候到了
  7. RabbitMQ消息队列应用
  8. ruby 查看csv文件_如何使用CSV和Ruby构建终端游戏
  9. oracle中的 expdp命令,Oracle 10G 数据泵中EXPDP命令行选项介绍
  10. 一步一步学习Git(2)——Git基本操作
  11. 为什么win10开热点后电脑没有网络?
  12. linux的内存available,Linux中available内存的计算
  13. 名正则言顺�谈服装品牌名称(三)
  14. js小学生图区_多种方式实现js图片预览
  15. 经验分享 | 我的八股文学习路线及攻略
  16. 微信小程序-名片复制功能效果
  17. 爬虫(2)之re 爬取淘宝网
  18. 智原扩展ASIC服务支持三星FinFET工艺以提供新一代产品应用需求
  19. MIMICIV中SOFA评分计算(WINDOWS)
  20. 迈拓 kvm 切换热键

热门文章

  1. php libdir,PHP扩展小结
  2. c语言随机数生成0 99函数,C语言生成随机数的函数、延时函数
  3. scp服务器复制命令跳过已有的文件夹,Linux scp命令复制文件到其它服务器上
  4. layui跳转html如何带参数,Layui跳转页面代码(可携带复杂参数)
  5. linux diff 补丁文件夹,LINUX下制作补丁文件 diff,patch
  6. 下列关于Java多线程并发控制_下列关于Java多线程并发控制机制的叙述中,错误的是...
  7. 运行时异常 检查时异常
  8. 手把手教你架构3d游戏引擎pdf_一个在游戏行业摸爬滚打了十几年的人,为何我对这本书情有独钟...
  9. Ant Design Pro 网络请求,视图绑定model并且渲染到页面 umi-request
  10. 通用权限管理系统组件 (GPM - General Permissions Manager) 权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱...