handler中的handler.removecallbacks和handler.removemessages的用法
1, postDelayed方法和removeCallbacks方法的使用
方法postDelayed的作用是延迟多少毫秒后开始运行,而removeCallbacks方法是删除指定的Runnable对象,使线程对象停止运行.
- public class Main extends Activity {
- private Button button1;
- private Button button2;
- private Handler handler = new Handler();
- private int count = 0;
- private Runnable runnableRef = new Runnable() {
- public void run() {
- Log.v("2", Thread.currentThread().getName());
- count++;
- Log.v("!", "count=" + count);
- handler.postDelayed(runnableRef, 1000); //此处是handler自己调用自己处理,所以就循环
- }
- };
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Log.v("1", Thread.currentThread().getName());
- button1 = (Button) this.findViewById(R.id.button1);
- button2 = (Button) this.findViewById(R.id.button2);
- button1.setOnClickListener(new OnClickListener() {
- public void onClick(View arg0) {
- Thread thread = new Thread(runnableRef);
- thread.start();
- Log.v("!!!!!!!!!!!!!", "end");
- }
- });
- button2.setOnClickListener(new OnClickListener() {
- public void onClick(View arg0) {
- handler.removeCallbacks(runnableRef);
- }
- });
- }
- }
- ---------------------------------------------------------------------------------------------------------------
- 效果图:程序运行后单击button1按钮开始循环,count累加1,运行结果如图6.41所示。
图6.41 循环加1效果
2、在延迟时间未到的前提下,执行removeMessages(0),则上面的handler中msg.what=0的方法取消执行;
3、在延迟时间已到,handler中msg.what=0的方法已执行,再执行removeMessages(0),不起作用。
handler中的handler.removecallbacks和handler.removemessages的用法相关推荐
- Android:Handler中的Idle Handler
[Android] Handler中的IdleHandler 抛出 Handler中的IdleHandler 它有什么能力? 它有什么用处? 能想到一些合适的场景吗? Answer1: 首先看下源码的 ...
- Android如何让Handler中内部run停止(runnable/thread)
[声明]此文转载自:http://www.bubuko.com/infodetail-669650.html --尊重作者,知识无价,交流无限! 一.先看图片,一目了然: 二.再看代码,了然于胸: A ...
- epoll监听文件_介绍一下 Android Handler 中的 epoll 机制?
介绍一下 Android Handler 中的 epoll 机制? 目录: IO 多路复用 select.poll.epoll 对比 epoll API epoll 使用示例 Handler 中的 e ...
- android sendmessage和post的区别,handler中post和send方式区别
handler中post和send方式的区别 1.从用法上 send:发送的是Message post:发送的是Runnable对象 具体用法,如下代码演示: MainActivity.java pu ...
- Android Handler中的handleMessage方法和post方法之源码剖析
我们都知道,在子线程中进行UI操作(更新UI控件)包括以下四种方法: 1.Handler的handlerMessage()方法. 2.Handler的post()方法. 3.View的post()方法 ...
- Handler 中的 handleMessage 所在线程是由什么决定的?
大多数情况下,handleMessage所在线程和 handler 初始化所在的线程相同,但 handler 初始化的时候可以传入一个 Looper 对象,此时handleMessage所在线程和参数 ...
- handler回调主线程_Android使用Handler实现子线程与子线程、子线程与主线程之间通信...
转载:https://blog.csdn.net/shaoenxiao/article/details/54561753 今天这篇文章只讲一下怎么使用Handler实现子线程与子线程之间.子线程与主线 ...
- Handler详解系列(四)——利用Handler在主线程与子线程之间互发消息,handler详解...
MainActivity如下: package cc.c;import android.app.Activity; import android.os.Bundle; import android.o ...
- 红橙Darren视频笔记 Handler源码简析与handler框架模拟 ThreadLocal
1.handler的使用 public class MainActivity extends AppCompatActivity {MyHandler myHandler;private static ...
最新文章
- Oracle内部错误ORA-07445:[_memcmp()+88] [SIGSEGV]一例
- C# 多线程读取数据并保存在DataGridView中,如果操作?代码是什么?谢谢
- ambari hive mysql_ambari方式安装hadoop的hive组件遇到的问题
- 什么是document对象?如何获取文档对象上的元素?_javascript自学记录:Document类型...
- c语言汉字属于什么类型_狠准!你的名字属于什么类型 就是什么性格
- ice库c语言例子,很不多的ICE架构入门学习例子
- Jmeter BeanShell学习(一) - BeanShell取样器(一)
- java数据库技术_JAVA数据库技术
- sap 测试数据生成报表
- MpscGrowableArrayQueue分析
- python 爬取加密视频,爬虫:解决视频遇到m3u8加密
- Django book2.0 contact表单
- 深大uooc大学生心理健康章节答案第九章
- tplink怎么进去_想设置路由器,如何进入tplink
- 9. DICOM图像显示-DCMTK-窗宽窗位调整和源码分析
- 盘是什么意思计算机网络,hdd网络上什么意思
- Github常用框架集合
- java中length和length()方法的区别
- 第一行代码Android技巧1——知晓当前是在哪一个活动
- 【Spark NLP】第 16 章:对象字符识别(OCR)
热门文章
- XMPP 协议的原理和介绍
- IPU相关知识(一)
- Linux下往github上传项目
- js、jquery操作复选框checkbox总结(单个/多个获取选中值、初始化设置默认选中值、全选反选)
- 【NOIP2015提高组】信息传递
- matlab中ARCH效应检验步骤,请教一下各位大神!如何判断ARCH效应(附ARCH-LM检验结果)...
- samba共享使用端口
- npm 清理vue项目缓存
- apollo新增扩展consul注册中心
- HDLBits-Exams/ece241 2013 q4、Lemmings1、Lemmings2、Lemmings3、Lemmings4