手机网站判断跳转淄博周村学校网站建设报价

news/2025/10/7 10:03:25/文章来源:
手机网站判断跳转,淄博周村学校网站建设报价,南通网站建设果尔,wordpress menu icon前言 本文由于介绍Android多线程编程的学习。 线程基本用法 定义线程有两种方式#xff0c;分别是继承Thread类、实现Runnable接口#xff1a; 继承Thread类#xff1a;只需新建一个类继承自Thread#xff0c;然后重写父类的run()方法#xff0c;在这个方法里面写耗时…前言 本文由于介绍Android多线程编程的学习。 线程基本用法 定义线程有两种方式分别是继承Thread类、实现Runnable接口 继承Thread类只需新建一个类继承自Thread然后重写父类的run()方法在这个方法里面写耗时逻辑 class MyThread extends Thread{Overridepublic void run(){//具体逻辑} }想启动这个线程只需new出MyThread实例再调用它的start()方法即可 new MyThread().start();实现Runnable接口继承的方法耦合度有点高我们更多使用实现Runnable接口的方式 class MyThread implements Runnable{Overridepublic void run(){//具体逻辑} }启动方式 MyThread myThreadnew MyThread();//实现了Runnable接口的对象 new Thread(myThread).start();如果不想专门定义一个类去实现Runnable接口也可以使用匿名类的方法 new Thread(new Runnable(){Overridepublic void run(){//具体逻辑} }).start();这种方式是我们常用到的推荐使用。 多线程编程实例——在子线程中更新UI 要想更新UI必须在主线程中更新否则会出现异常。 在子线程中更新UI出现异常情况就不演示了这里演示一下异步消息处理更新UI下面会重点讲解异步消息处理机制 public class MainActivity extends AppCompatActivity implements View.OnClickListener {private TextView text;public static final int UPDATE_TEXT1;private Handler handlernew Handler(){public void handleMessage(Message msg){switch (msg.what){case UPDATE_TEXT:text.setText(666);break;default:break;}}};Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text(TextView) findViewById(R.id.text);Button change(Button) findViewById(R.id.change);change.setOnClickListener(this);}Overridepublic void onClick(View view) {switch (view.getId()){case R.id.change:new Thread(new Runnable() {Overridepublic void run() {Message messagenew Message();message.whatUPDATE_TEXT;handler.sendMessage(message);}}).start();break;default:break;}} }这里在子线程中我们先封装了一个Message对象并将它的what值设置为UPDATE_TEXT对应handleMessage()方法中更新UI的方法然后调用handler的sendMessage()方法将消息发出最后在handleMessage()方法中更新UI。handleMessage()方法中更新UI的操作是在主线程中进行的不用担心会发生异常只是发送更新UI这个指令的操作是在子线程中完成的更新UI的操作还是在主线程中进行。下面来具体解析一下异步消息处理机制。 异步消息处理机制 首先什么叫异步消息就是发送消息和处理消息不在同一个时间。 Android中的异步消息处理主要由四部分组成Message、Handler、MessageQueue、Looper Message Message是在线程之间传递的消息可以携带部分信息如上面message.whatUPDATE_TEXT该信息用于不同线程间交换数据。除此之外还可以使用arg1和arg2字段来携带一些整型数据使用obj字段来携带一个Object对象。 Message messagenew Message(); message.whatUPDATE_TEXT; message.arg11; message.arg22; message.objnew Object();Handler 顾名思义就是处理者的意思它主要用于发送和处理信息。发送消息是Handler的sendMessage()方法消息经过一系列处理后最终会传到Handler的handleMessage()方法中。 MessageQueue MessageQueue就是消息队列的意思主要用于存放所有通过Handler发送的消息。这些消息会一直存在于消息队列中等待被处理每个线程只有一个MessageQueue对象。 Looper Looper是每个线程中MessageQueue的管家。调用Looper的loop()方法后就会进入到一个无限循环只要发现MessageQueue中存在一条消息就会将它取出并传递到Handler的handleMessage()方法中。每个线程也只有一个Looper对象。 总结梳理一遍异步消息处理的整个流程。首先在主线程中创建一个Handler对象并重写handleMessage()方法这个对象用于发送消息和处理消息。当子线程中需要更新UI操作的时候创建一个Message对象通过Hanlder的sendMessage()方法将这条消息发出。消息发出后会被添加到消息队列MessageQueue中等待被处理而Looper一直尝试从MessageQueue中取出待处理的消息取到了就发回给Handler的handleMessage()方法进行处理。handleMessage()方法是在主线程中运行的所以可以放心大胆进行UI操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么有些网站看不到百度快照南宁网站制作哪家好

对于做互联网的朋友们来说,引流是一个必不可少的环节。 掌握一种优秀的引流方法至关重要,这也可以视为我们的生计之源。 今天,我将向大家介绍一款全自动的引流工具——抖音全自动引流脚本软件。 这款软件的效果非常显著,它可以替…

怎么做新网站才能被百度收录有哪些官网做得比较好

版本与信息查询 docker --version:查看安装的Docker版本。 docker info:获取Docker系统的详细配置信息。 镜像管理 docker images:列出本地所有镜像。 docker search IMAGE_NAME:搜索Docker Hub上的镜像。 docker pull IMAGE_NAME[:TAG]:从仓库下载指定镜像。 docker rmi …

企业网站维护的要求包括前端自我介绍面试技巧

Python的正则表达式使用 定义使用场景查替换分割 常用的正则表达符号查原字符英文状态的句号点 .反斜杠 \英文的[]英文的()英文的?加号 星号 *英文状态的大括号 {} 案例 定义 正则表达式是指专门用于描述或刻画字符串内在规律的表达式。 使用场景 无法通过切片,…

大模型部署

部署云服务部署 优势:前期成本低,维护简单 劣势:数据不安全,长期使用成本高本地机器部署 优势:数据安全,长期成本低 劣势:初期成本高,维护困难他人部署 1.阿里云白炼 2.百度智能云 3.硅基流动 4.火山引擎OLLAM…

读技术之外:社会联结中的人工智能02劳工

读技术之外:社会联结中的人工智能02劳工1. 劳工 1.1. 入口通道处每隔一定距离都会出现很多考勤钟标志 1.2. 休息间里的考勤钟也起着重要作用—进出房间的所有扫描都会被追踪 1.3. 每个班次间只能休息15分钟,还有无薪…

详细介绍:如何有效删除 iPhone 上的所有内容?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

鼠标图标更改样式

https://zhutix.com/tag/cursors/page/2/?post_order=likeI hope all of us can learn to progress!

做网站的预算表广西桂林天气预报15天查询

一、SpringBoot和SpringCloud简介 1、SpringBoot:是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置&am…

徐州网站建设价格odoo做网站

目录 Vue.js Ajax(axios) GET 方法 请求方法的别名 并发 请求配置项 响应结

马洪旭 做的网站大学赞友商城电商平台排名第几

以前都是用Cg的,现在改用GLSL,又要重新学,不过两种语言很多都是相通的。下面的例子是实现绘制一个三角形的简单程序。采用了VBO(veretx buffer object)、VAO(vertex array object)等OpenGL的一些…

网站开发速成培训机构郑州网站设计制作价格

1、正向代理 1.我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站 2.于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。 3.客户端必须设置正向代理…

webpack和vite的区别 - 指南

webpack和vite的区别 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

m3u8在线播放测试的方法与常见问题解决方案(附网页演示

在如今的流媒体视频环境中,m3u8格式因其分片传输、秒开等特性越来越常见。无论是开发、运维还是视频内容生产者,很多时候都会遇到需要测试或在线播放m3u8链接的需求。那么,如何方便、高效地测试m3u8流的可用性,遇到…

校招题

NC258932 题目 其实就是一个三分答案的模板题,可以看出这是一个单谷函数。 借助这篇 博客 复习一下。 #include <bits/stdc++.h> using namespace std; using db = long double; db eps = 1e-6;void solve() {d…

React 播客专栏 Vol.18|React 第二阶段复习 样式与 Hooks 全面整合 - 实践

React 播客专栏 Vol.18|React 第二阶段复习 样式与 Hooks 全面整合 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

嘉兴网站建设推荐浙江华企芯片商城网站建设

性能 当服务器正常运行时&#xff0c;WAL文件不断被写入磁盘。但是&#xff0c;这些写操作是顺序的:几乎没有随机访问&#xff0c;因此即使是HDD也可以处理这个任务。由于这种类型的加载与典型的数据文件访问非常不同&#xff0c;因此有必要为WAL文件设置一个单独的物理存储&a…

Manim实现旋转扭曲特效

在数学动画制作中,特殊效果可以极大地增强视觉表现力和吸引力。 本文将介绍如何使用Manim框架实现一个旋转扭曲特效,通过自定义动画类来创建独特的视觉效果。 实现原理 旋转扭曲特效的核心是通过修改对象上每个点的坐…

vip影院自助建站系统百度会员

graph LR A-->B性能概述 程序性能表现形式 执行速度&#xff1a;程序响应速度&#xff0c;总耗时是否足够短内存分配&#xff1a;内存分配是否合理&#xff0c;是否过多消耗内存或者存在泄漏启动时间&#xff1a;程序运行到可以正常处理业务需要的时间负载承受能力 性能测…

h5网站如何做flash 网站欣赏

js/jQuery常见操作 之各种语法例子&#xff08;包括jQuery中常见的与索引相关的选择器&#xff09; 1. 操作table常见的1.1 动态给table添加title&#xff08;指定td&#xff09;1.1.1 给td动态添加title&#xff08;含&#xff1a;获取tr的第几个td&#xff09;1.1.2 动态加工…

go语言学习 第5章:函数 - 详解

go语言学习 第5章:函数 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…