当前位置: 首页 > news >正文

品牌查询网站 优帮云开发微信小程序多少钱

品牌查询网站 优帮云,开发微信小程序多少钱,wordpress全站转移,企业建设营销网站的基本步骤Android 的消息机制主要是指 Handler 的运行机制以及 Handler 所附带的 MessageQueue 和 Looper 的工作过程。 Handler 的主要作用是将某个任务切换到 Handler 所在的线程中去执行。 一句话,每个线程可以创建一个 Looper ,每个 Looper 轮询着一个 Messa…

Android 的消息机制主要是指 Handler 的运行机制以及 Handler 所附带的 MessageQueue 和 Looper 的工作过程。 Handler 的主要作用是将某个任务切换到 Handler 所在的线程中去执行。

一句话,每个线程可以创建一个 Looper ,每个 Looper 轮询着一个 MessageQueue 不断取出消息,有消息则回调给 Handler,Handler 负责向 MessageQueue 中发送消息和处理回调的消息来完成线程之间的转换

也就是说与我们交互的是handler,我们使用handler向looper发送消息,looper就在他所在的线程对消息进行处理了

那么runnable呢,runnable就是一段让looper直接执行的指令,而不是通过message判断该执行什么已经设定好的操作

import android.os.*
import android.util.Log
import java.util.concurrent.atomic.AtomicBooleanclass HandlerExample {// 日志标签private val TAG = "HandlerExample"// 消息类型常量companion object {const val MSG_HELLO = 1const val MSG_WORLD = 2const val MSG_STOP = 3}// 工作线程和对应的 Handlerprivate lateinit var workerThread: WorkerThreadprivate lateinit var workerHandler: Handler// UI 线程的 Handlerprivate val mainHandler = object : Handler(Looper.getMainLooper()) {override fun handleMessage(msg: Message) {when (msg.what) {MSG_HELLO -> Log.d(TAG, "Main Thread received: Hello")MSG_WORLD -> Log.d(TAG, "Main Thread received: World")else -> super.handleMessage(msg)}}}// 工作线程类inner class WorkerThread : Thread() {private val running = AtomicBoolean(false)override fun run() {Log.d(TAG, "Worker thread started")// 为当前线程创建 LooperLooper.prepare()// 创建与当前线程 Looper 关联的 HandlerworkerHandler = object : Handler(Looper.myLooper()!!) {override fun handleMessage(msg: Message) {when (msg.what) {MSG_HELLO -> {Log.d(TAG, "Worker thread received: Hello")// 模拟耗时操作Thread.sleep(1000)// 向主线程发送消息mainHandler.sendEmptyMessage(MSG_HELLO)}MSG_WORLD -> {Log.d(TAG, "Worker thread received: World")// 模拟耗时操作Thread.sleep(1000)// 向主线程发送消息mainHandler.sendEmptyMessage(MSG_WORLD)}MSG_STOP -> {Log.d(TAG, "Worker thread received: Stop")running.set(false)Looper.myLooper()?.quit()}}}}running.set(true)// 启动消息循环Looper.loop()Log.d(TAG, "Worker thread finished")}fun isRunning(): Boolean = running.get()}// 启动工作线程fun startWorker() {workerThread = WorkerThread()workerThread.start()// 等待线程启动并初始化 Looperwhile (!this::workerHandler.isInitialized) {Thread.sleep(10)}// 发送消息到工作线程workerHandler.sendEmptyMessage(MSG_HELLO)workerHandler.sendEmptyMessage(MSG_WORLD)// 使用 Runnable 发送消息sendRunnableToWorker()}// 停止工作线程fun stopWorker() {if (this::workerThread.isInitialized && workerThread.isRunning()) {workerHandler.sendEmptyMessage(MSG_STOP)try {workerThread.join()} catch (e: InterruptedException) {e.printStackTrace()}}}// 测试方法fun testHandler() {Log.d(TAG, "Starting handler test")// 启动工作线程startWorker()// 等待工作完成try {Thread.sleep(3000)} catch (e: InterruptedException) {e.printStackTrace()}// 停止工作线程stopWorker()Log.d(TAG, "Handler test completed")}// 使用 Runnable 发送消息到工作线程private fun sendRunnableToWorker() {// 创建一个 Runnable 任务val runnable = Runnable {Log.d(TAG, "Worker thread is executing Runnable")// 模拟耗时操作try {Thread.sleep(1500)} catch (e: InterruptedException) {e.printStackTrace()}// 向主线程发送消息mainHandler.post {Log.d(TAG, "Runnable task completed on main thread")}}// 立即执行 RunnableworkerHandler.post(runnable)// 延迟执行 RunnableworkerHandler.postDelayed({Log.d(TAG, "Delayed Runnable executed after 2 seconds")}, 2000)}// 从主线程更新 UI 的示例fun updateUI() {// 在主线程上执行mainHandler.post {// 这里可以安全地更新 UILog.d(TAG, "Updating UI on main thread")}}
}
http://www.yayakq.cn/news/671738/

相关文章:

  • 打开网站提示建设中设计师常看的网站
  • 企业网站客户案例便宜虚拟主机做网站备份
  • 扬州市做网站企业网站改版
  • 网站备案转移网上商城网站建设解决方案
  • 榆林市网站seowordpress页面添加新闻
  • 做网站多少钱角西宁君博特惠企业网站建设对企业客户的意义
  • 滴滴出行的网站是哪家公司做的wordpress 修改 点击量
  • 创建网站服务器地址下载中心
  • 入侵网站做排名下载好了网站模板怎么开始做网站?
  • 编程猫官网seo包年优化费用
  • 物流网站建设平台分析邢台免费发布推广信息的平台
  • 实验室网站开发框架网站的建设思路
  • 产品少的电商网站怎么做个人房源网
  • 甘肃广川工程建设有限公司网站知网网站开发
  • 佛山招收网站设计石家庄网站搭建定制
  • 网站推广招商建筑工程网 装修
  • 网站做图标放在手机桌面广州网站建设哪个好
  • 中国美院网站建设公司增城建设局网站
  • wordpress推广网站插件广州做网站要多少钱
  • 图片生成器网站南昌定制网站开发
  • 百度秒收录的网站青海网络推广公司
  • 网站备案有期限吗注册了域名之后如何建立一个网站
  • 拼团做的比较好的网站无锡装修公司哪家口碑最好
  • 做网站 用什么建站软件好做网站前端用什么软件
  • 自己建网站怎么做影视资源制作网站设计的公司
  • soho的网站怎么做商务网站建设学期总结
  • 石家庄网站建设.神鹿网络怎么做软件程序
  • net做网站酒厂网站模板
  • 做网站笔记本网站开发后端
  • 空间网站打不开电商平台建设公司