1, postDelayed方法和removeCallbacks方法的使用

方法postDelayed的作用是延迟多少毫秒后开始运行,而removeCallbacks方法是删除指定的Runnable对象,使线程对象停止运行.

  1. public class Main extends Activity {
  2. private Button button1;
  3. private Button button2;
  4. private Handler handler = new Handler();
  5. private int count = 0;
  6. private Runnable runnableRef = new Runnable() {
  7. public void run() {
  8. Log.v("2", Thread.currentThread().getName());
  9. count++;
  10. Log.v("!", "count=" + count);
  11. handler.postDelayed(runnableRef, 1000);  //此处是handler自己调用自己处理,所以就循环
  12. }
  13. };
  14. @Override
  15. public void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. Log.v("1", Thread.currentThread().getName());
  19. button1 = (Button) this.findViewById(R.id.button1);
  20. button2 = (Button) this.findViewById(R.id.button2);
  21. button1.setOnClickListener(new OnClickListener() {
  22. public void onClick(View arg0) {
  23. Thread thread = new Thread(runnableRef);
  24. thread.start();
  25. Log.v("!!!!!!!!!!!!!", "end");
  26. }
  27. });
  28. button2.setOnClickListener(new OnClickListener() {
  29. public void onClick(View arg0) {
  30. handler.removeCallbacks(runnableRef);
  31. }
  32. });
  33. }
  34. }
  35. ---------------------------------------------------------------------------------------------------------------
  36. 效果图:程序运行后单击button1按钮开始循环,count累加1,运行结果如图6.41所示。
     
    图6.41  循环加1效果
2,handler.removemessages
1、这个方法使用的前提是之前调用过sendEmptyMessageDelayed(0, time),意思是延迟time执行handler中msg.what=0的方法;
2、在延迟时间未到的前提下,执行removeMessages(0),则上面的handler中msg.what=0的方法取消执行;
3、在延迟时间已到,handler中msg.what=0的方法已执行,再执行removeMessages(0),不起作用。

handler中的handler.removecallbacks和handler.removemessages的用法相关推荐

  1. Android:Handler中的Idle Handler

    [Android] Handler中的IdleHandler 抛出 Handler中的IdleHandler 它有什么能力? 它有什么用处? 能想到一些合适的场景吗? Answer1: 首先看下源码的 ...

  2. Android如何让Handler中内部run停止(runnable/thread)

    [声明]此文转载自:http://www.bubuko.com/infodetail-669650.html --尊重作者,知识无价,交流无限! 一.先看图片,一目了然: 二.再看代码,了然于胸: A ...

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

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

  4. android sendmessage和post的区别,handler中post和send方式区别

    handler中post和send方式的区别 1.从用法上 send:发送的是Message post:发送的是Runnable对象 具体用法,如下代码演示: MainActivity.java pu ...

  5. Android Handler中的handleMessage方法和post方法之源码剖析

    我们都知道,在子线程中进行UI操作(更新UI控件)包括以下四种方法: 1.Handler的handlerMessage()方法. 2.Handler的post()方法. 3.View的post()方法 ...

  6. Handler 中的 handleMessage 所在线程是由什么决定的?

    大多数情况下,handleMessage所在线程和 handler 初始化所在的线程相同,但 handler 初始化的时候可以传入一个 Looper 对象,此时handleMessage所在线程和参数 ...

  7. handler回调主线程_Android使用Handler实现子线程与子线程、子线程与主线程之间通信...

    转载:https://blog.csdn.net/shaoenxiao/article/details/54561753 今天这篇文章只讲一下怎么使用Handler实现子线程与子线程之间.子线程与主线 ...

  8. Handler详解系列(四)——利用Handler在主线程与子线程之间互发消息,handler详解...

    MainActivity如下: package cc.c;import android.app.Activity; import android.os.Bundle; import android.o ...

  9. 红橙Darren视频笔记 Handler源码简析与handler框架模拟 ThreadLocal

    1.handler的使用 public class MainActivity extends AppCompatActivity {MyHandler myHandler;private static ...

最新文章

  1. Oracle内部错误ORA-07445:[_memcmp()+88] [SIGSEGV]一例
  2. C# 多线程读取数据并保存在DataGridView中,如果操作?代码是什么?谢谢
  3. ambari hive mysql_ambari方式安装hadoop的hive组件遇到的问题
  4. 什么是document对象?如何获取文档对象上的元素?_javascript自学记录:Document类型...
  5. c语言汉字属于什么类型_狠准!你的名字属于什么类型 就是什么性格
  6. ice库c语言例子,很不多的ICE架构入门学习例子
  7. Jmeter BeanShell学习(一) - BeanShell取样器(一)
  8. java数据库技术_JAVA数据库技术
  9. sap 测试数据生成报表
  10. MpscGrowableArrayQueue分析
  11. python 爬取加密视频,爬虫:解决视频遇到m3u8加密
  12. Django book2.0 contact表单
  13. 深大uooc大学生心理健康章节答案第九章
  14. tplink怎么进去_想设置路由器,如何进入tplink
  15. 9. DICOM图像显示-DCMTK-窗宽窗位调整和源码分析
  16. 盘是什么意思计算机网络,hdd网络上什么意思
  17. Github常用框架集合
  18. java中length和length()方法的区别
  19. 第一行代码Android技巧1——知晓当前是在哪一个活动
  20. 【Spark NLP】第 16 章:对象字符识别(OCR)

热门文章

  1. XMPP 协议的原理和介绍
  2. IPU相关知识(一)
  3. Linux下往github上传项目
  4. js、jquery操作复选框checkbox总结(单个/多个获取选中值、初始化设置默认选中值、全选反选)
  5. 【NOIP2015提高组】信息传递
  6. matlab中ARCH效应检验步骤,请教一下各位大神!如何判断ARCH效应(附ARCH-LM检验结果)...
  7. samba共享使用端口
  8. npm 清理vue项目缓存
  9. apollo新增扩展consul注册中心
  10. HDLBits-Exams/ece241 2013 q4、Lemmings1、Lemmings2、Lemmings3、Lemmings4