Handler的使用方法(一)

2023-05-16

//**********************************************

想花点时间谈谈Handler的使用方法,是应为Handler的使用涉及到了线程类的使用,也是在程序中用到了线程,关于线程,是个很重要的概念,因为以后的嵌入式系统的应用开发往往在程序的调用都会用到线程和进程,这一个机制是由操作系统而非应用程序本身来进行调节。

前面的控件不说了,直接看代码:

因为进度条的滚动需要一个按钮来进行触发,先在TestHandler里创建一个监听器,当点击按钮时就会触发这个监听器,当然前面还要在onCreate()方法里把这个监听器的对象绑定在按钮对象上去;

onCreate()里的是,首先把进度条制成看得见,然后调用updateBarHandler的post方法,这个post方法的作用是把updateThread这个线程加入到线程队列当中去,启动线程机制;

下面先看这个线程的创建:

一般来讲线程执行都是从run()方法开始的,run()方法里是什么呢?

1、首先先打印一句话;

2、通过这个方法--updateBarHandler来得到一个消息对象--msg,然后用msg对象的成员变量arg1来传递消息,

3、下面还有几行语句,作用是先让这个进程睡眠1s,然后执行;

4、前面讲到了当一按下按钮,就开始把线程压入到线程队列中,执行这个线程,然后睡眠了1s后,定义的消息对象开始用它的成员变量做消息的传递,首先是sendMessage方法把这个消息加入到消息队列当中去,然后在updateBarHandler这个匿名内部类中显示进度条, 判断i的值

再次把线程对象加入到线程队列当中去,知道i的值== 100 才通过remove方法取消这个线程;

否则会一直进行下去。

这是这个Handle的大致流程过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Handler的使用方法(一) 的相关文章

  • C++ 未处理的异常

    如果发生未处理的异常 C 是否提供了一种 显示 可视化内容的方法 我想做的是做一些像assert unhandled exception msg 如果它确实发生 如下面的示例所示 include
  • CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸视图

    我在 Android 中遇到以下错误 CalledFromWrongThreadException 仅 创建的原始线程 视图层次结构可以触摸其视图 当我尝试更新 Activity 中的 Textview 时 似乎会发生这种情况 更新 Tex
  • 在 android 中使用 handler 和 postDelayed 暂停

    我对 Android 编程很陌生 所以请原谅我的新手 我正在尝试创建一个非常简单的活动 该活动将在布局中间有一个 TextView 并且每隔几秒切换到不同的文本 例如 TextView 会说 text1 暂停几秒钟 然后说 text2 然后
  • Svc 处理程序到 SMC 调用

    如何用C编写svc处理程序来调用SMC 监视模式 指令以切换到arm cortex a9的监视模式 即从管理模式到监视模式需要在 svc 处理程序中完成哪些操作 如何在 C 中编写相同的内容 详细的答案值得赞赏 示例可以在 Linux 源代
  • 如何删除 VB.NET 中的事件处理程序[重复]

    这个问题在这里已经有答案了 可能的重复 VB NET RemoveHandler 和匿名方法 如果我添加这样的事件处理程序 AddHandler s Click AddressOf Panel1 Click 我怎样才能删除事件处理程序 Pr
  • Android 中的 ProgressDialog 关闭

    当我单击列表项时 我想打开一个 ProgressDialog 该列表项从 Web 服务中打开所单击项的数据 ProgressDialog 需要一直显示 直到单击的项目的 WebContent 打开为止 我知道使用进度对话框的代码 但我不知道
  • C# 事件删除语法

    我对 C 中删除事件处理程序的语法感到困惑 Something new MyHandler HandleSomething add Something new MyHandler HandleSomething remove new 在每一
  • 如何在Android Studio中正确使用postDelayed()?

    我有一个 countDownTimer 如果用户在第 12 秒内没有点击 gameButton 我希望调用 gameOver 方法 问题在于 当 countDownTimer 为 12 时 游戏函数会立即被调用 或者计时器会继续倒计时 所以
  • 使用 handler.postDelayed 获取剩余时间

    我在用handler postDelayed为某些动画内容创建一些延迟的方法 像这样 Handler h new Handler h postDelayed new Runnable Override public void run Sta
  • 在哪里创建和使用 ScheduledThreadPoolExecutor、TimerTask 或 Handler?

    我需要让我的 RSS Feed 阅读器每 10 分钟检查一次 feed 中是否有新帖子 然后在有新帖子时解析它们 我还需要大约每分钟更新一次用户界面 我从不同的来源读到和听到了不同的事情 我目前的理解是我可以使用ScheduledThrea
  • 单击按钮启动计时器

    我是 Android 编程新手 但我了解 Java 我的问题是 Android 中的计时器如何工作 我读过最好使用处理程序 我想做的是 您单击一个按钮 计时器就会启动 到单击按钮的那一刻 我一切都清楚了 但如何启动计时器 Android 中
  • `无法在继承的 Activity 中创建处理程序...Looper.prepare()`

    我有一个游戏Activity 活动 A 适用于所有代码 然后我创建一个新的Activity 活动 B 对于我的新游戏模式 extendsActivity A 然而 当遇到 Toast 行时 Activity B 突然抛出异常 Activit
  • 如何为 Google Cloud Pubsub“创建”/“分配”日志记录处理程序?

    发展从上一个线程 https stackoverflow com questions 54249312 python pubsub subprocess complaining about logger handler how do i f
  • IIS 7.5 无法打开处理程序映射?

    我需要更新 IIS 7 5 上的处理程序映射 以允许将没有扩展名的 URL 路由到应用程序 该应用程序最初是用 ASP NET 2 0 编写的 但后来升级到 ASP NET 3 5 我不知道这是否相关 但我之前更新其他 net 3 5 应用
  • Android - 延迟加载图像

    我正在尝试伪造某种进度条 我有 X 张图片并想要一张ImageView以一定的延迟向他们展示 我尝试过做这样的事情 for i 2 i
  • 如何处理android中的睡眠模式进入?

    我在任何地方都没有找到它 我该如何处理在android中进入睡眠模式 当Android设备进入睡眠模式时我想做什么 这是可能的还是有办法处理它 只需使用 BroadCastReceivers 进行系统调用 唤醒 睡眠 即可实现此目的 And
  • 如何创建一个Looper线程,然后立即向其发送消息?

    我有一个工作线程位于后台 处理消息 像这样的事情 class Worker extends Thread public volatile Handler handler actually private of course public v
  • 如何为将 Gmail 作为默认邮件处理程序的用户在新选项卡中打开 mailto 链接?

    在网页上 mailto 链接会打开默认的电子邮件客户端 现在 Chrome 提供了将 Gmail 设置为默认电子邮件客户端的功能 一些用户在同一窗口中打开了链接 从而使他们离开了单击链接的页面 他们不喜欢这样 我尝试将目标 blank添加到
  • Python 日志记录:为什么 __init__ 被调用两次?

    我正在尝试将 python 日志记录与配置文件和自己的处理程序一起使用 这在某种程度上是有效的 真正让我困惑的是 init 被叫两次并且 del 被调用一次 当我删除整个配置文件内容并直接在代码中创建处理程序时 init 被调用一次并且 d
  • Asp.NET 处理程序和通用处理程序

    在 Visual Studio 2010 中 当您说 new Item 时 您可以看到 Asp NET Handler 和 Generic Handler 你能告诉我有什么区别吗 我认为它是随 NET 4 0 一起提供的 因为我在 Goog

随机推荐

  • ROS学习(14)自定义四轮小车的ROS导航

    文章目录 前言一 创建编译功能包二 代价地图配置三 基本局部规划器配置四 创建导航包的启动文件五 导航仿真六 总结 前言 本篇为自定义四轮小车的ROS导航仿真 xff0c 与前面自定义机器人导航类似 该篇源码非原创 xff0c 特此说明 x
  • ROS学习(24)plugin插件

    文章目录 前言一 工作原理二 具体实现1 创建基类2 创建plugin类3 注册插件4 编译插件的动态链接库5 将插件加入ROS6 调用插件7 运行效果 前言 ROS中的插件就是可以动态加载的扩展功能类 ROS中的pluginlib功能包提
  • ROS学习(28)Web GUI

    文章目录 前言一 rosbridge suite元功能包二 roslibjs ros2djs ros3djs功能包三 tf2 web republisher功能包四 创建web应用五 使用web浏览器控制机器人 前言 ROS Web too
  • 参看了别人写的面试讲解

    转帖 ERP顾问的面试 新的一年就要开始了 xff0c 有不少的同行估计都在想着跳槽了 今天我就把自己的当面试官的感受给大家谈谈 xff0c 也许 xff0c 从中 xff0c 你可以掌握 ERP 实施顾问面试的技巧 在来年 xff0c 当
  • ROS2学习(1)ROS2简述

    文章目录 前言一 ROS1存在的问题二 什么是ROS21 ROS2的设计目标2 ROS2的系统架构3 ROS2的关键中间件 DDS4 ROS2中的通信模型5 ROS2的编译系统 前言 虽然众多开发者对ROS1进行了很多开发建设 xff0c
  • Qt之实现自定义控件的两种方式——提升法

    文章目录 前言一 需求二 实现1 新建项目2 自定义控件类3 提升4 效果 前言 可以通过Qt设计师拖拽原生控件进行界面开发 xff0c 但有时候原生控件不能满足项目需求 此时 xff0c 就需要实现自定义控件 Qt中实现自定义控件 xff
  • Qt之实现自定义控件的两种方式——插件法

    文章目录 前言一 需求二 实现1 新建项目2 自定义控件类3 编译插件4 拖拽使用 xff08 1 xff09 在designer exe中直接拖拽 xff08 2 xff09 在Qt Creator的设计师中直接拖拽 5 在项目中正常使用
  • Qt自定义控件——动态圆形进度条

    文章目录 前言一 需求二 实现1 自定义控件类2 提升3 效果 前言 本篇通过提升法实现一个动态圆形进度条 一 需求 自定义实现一个动态圆形进度条 xff0c 支持设置进度条颜色 目标值背景色 外边框背景色 中央圆环背景色 旋转角度及大小自
  • linux下可视化git工具git-cola安装与使用(SSH方式)

    一 git cola为何物 很多小伙伴 xff0c 特别喜欢使用TortoiseGit xff0c 该软件是做什么的 xff0c 就不用多说吧 奈何 xff0c TortoiseGit只有windows版 xff0c 这让在linux上开发
  • 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法 xff1a 布谷鸟搜索算法 附代码 文章目录 智能优化算法 xff1a 布谷鸟搜索算法 附代码1 算法原理2 算法结果3 参考文献4 Matlab代码 摘要 xff1a 谷鸟搜索算法 cuckoo search cs xff0
  • 基于布谷鸟优化的BP神经网络(预测应用) - 附代码

    基于布谷鸟优化的BP神经网络 xff08 预测应用 xff09 附代码 文章目录 基于布谷鸟优化的BP神经网络 xff08 预测应用 xff09 附代码1 数据介绍3 CS优化BP神经网络3 1 BP神经网络参数设置3 2 布谷鸟算法应用
  • 基于粒子群优化的BP神经网络(分类应用) - 附代码

    基于粒子群优化的BP神经网络 xff08 分类应用 xff09 附代码 文章目录 基于粒子群优化的BP神经网络 xff08 分类应用 xff09 附代码1 鸢尾花iris数据介绍2 数据集整理3 粒子群优化BP神经网络3 1 BP神经网络参
  • Arm Keil MDK v5.30版本官宣,快来下载!

    近日 xff0c Arm很高兴地宣布发布Arm Keil MDK v5 30 此版本新增了对Cortex M55处理器和CMSIS Build的支持 xff0c 更新包括Arm Compiler 6 14 xff0c CMSIS 5 7 0
  • ubuntu下访问串口

    前言 最近准备将windows上自动瞄准的程序移植到linux xff0c 第一步准备调试一下ubuntu下的串口 在网上搜到一个串口库 xff0c 于是就拿来调用 xff0c 最后调试成功 过程如下 xff1a 过程 1 下载Serial
  • 热备笔记实验

    早上突然断电 本来笔记本的插头就忘记插了 xff0c 电池没用多久就熄火 最纳闷的是接入电源后本机数据库竟然挂掉了 xff0c 嘿嘿 xff0c 正好试一试前几天应用的热备回复 以下是我的全程 C Documents and Setting
  • Android学习之AIDL添加Service权限

    参考 Android开发艺术探索 xff0c 书中提供了两种方法 第一种方法 xff1a 在onBind中验证 在服务端的AndroidManifest添加自定义权限 lt permission android name 61 span c
  • ADRC(自抗扰控制器)技术附Matlab代码框架

    自抗扰控制器 Auto Active Disturbances Rejec ion Controller ADRC 是韩京清学者提出的 xff0c 是一种继PID控制器后的一种新型的实用的控制技术 它不是一种独立的技术 xff0c 可以理解
  • git视频及对初学者的学习建议

    http herry2013git blog 163 com blog static 21956801120144810133569 http herry2013git blog 163 com blog static 2195680112
  • 迷你光流使用说明

    为了让你有兴趣往下学习 xff0c 先上个定点悬停效果视频给你欣赏一下吧 xff01 点击打开视频链接 首先 xff0c 简单介绍一下我使用的这款光流传感器 长宽高 xff1a 14x11x5mm xff0c 重量约0 6克 xff0c 工
  • Handler的使用方法(一)

    想花点时间谈谈Handler的使用方法 xff0c 是应为Handler的使用涉及到了线程类的使用 xff0c 也是在程序中用到了线程 xff0c 关于线程 xff0c 是个很重要的概念 xff0c 因为以后的嵌入式系统的应用开发往往在程序