Android开发八:多线程异步使用

【Android+多线程】异步 多线程 知识总结:基础概念 / 多种方式 / 实现方法 / 源码分析 一个基本的CPU执行单元 & 程序执行流的最小单元。 阅读详情
public class DetailActivity extends Activity {

	ProgressBar bar;
		
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.detail);
		
		bar =(ProgressBar)findViewById(R.id.proBar);//风火轮
		
		/**
		 * VISIBLE:0  意思是可见的

		   INVISIBILITY:4 意思是不可见的,但还占着原来的空间

		   GONE:8  意思是不可见的,不占用原来的布局空间
		 * **/
		bar.setVisibility(0);
		// 创建一个线程
		HttpThread thread = new HttpThread(handler);
		// 开始新线程
		thread.start();
	}
	
	// 捕获消息队列
	Handler handler = new Handler() {
		 
		public void handleMessage(Message m) {
			bar.setVisibility(8);//隐藏"风火轮"
			switch(m.what)
			{
				case 1:
					//.....
					break;
				case 2:
					break;	
				case 3:
					break;
			}
		}
	};
	 // 线程类
	class HttpThread extends Thread {
		
		private Handler handle = null;

		// 构造函数
		public HttpThread(Handler hander) {
			handle = hander;
		}

		//启动线程
		public void doStart() {
			//提示信息...
			this.start();
		}

		//运行线程
		@Override
		public void run() {
			// TODO Auto-generated method stub
			super.run(); 
			try {
				dosomething();//做你应该做的....
			}catch (Exception ex) {
				ex.printStackTrace();
				
				//构造消息
				Message message = new Message();
				message.what =3;
				message.obj = ex.getMessage();//传递数据
				handle.sendMessage(message);
				
			} finally {

			}
		}	
	}
}


Android多线程开发之Callback 多线程中的返回Callback---回调 interface 阅读详情

相关推荐

Android异步任务与多线程

ANR 的根本原因是:应用未在规定的时间内处理 AMS 指定的任务才会 ANR。另外,人眼可以分辨的时间的160毫秒,超过这个时间就可以感到卡顿,所以要控制好这个时间。

2401_89224638的博客 1428

Android异步任务与多线程,Android面试吃透这一篇就没有拿不到的offer

ANR全程Application Not Responding,意思是程序未响应,如果一个应用无法响应用户的输入,系统就会弹出一个ANR对话框,用户可以自行选择继续等待亦或停止当前程序。

2401_83620690的博客 1620

Android多线程异步任务,在主线程中回调

Android多线程异步任务,在主线程中回调在Android中在后台执行多线程异步任务的时候,当异步任务执行成功之后就需要回调主线程,在Android中有很多种回调的方式,我这边自己根据自己开发出的项目,整理出了自己的一个异步回调的工具类,是基于Handler写出来的,但是比以往的方式使用起来更方便一点:实现的思路 在自己项目中,使用到了USB协议,整个协议的完成需要自己封装,在走USB协议的时

I_See_Sky的专栏 2753

Android知识体系总结2020之Android部分AsyncTask机制篇

Android面试系列文章2018之Android部分AsyncTask机制篇 1.AsyncTask是什么?   它本质上是一个封装了线程池和Handler的异步框架。 2.AsyncTask的基本用法   a.3个参数   b.5个方法   面试的时候说明这三个泛型参数,还有5个方法的作用即可:   http://blog.youkuaiyun.com/iisprin...

编程语言是方式,而思维是创造。 6493

Android中线程同步异步方式小结

一、同步和异步的区别首先以一个常见的开发场景来区别一下同步和异步的区别,比如我们要获取一张网络图片并完成显示。在这个场景中我们需要开启两个线程,一个是子线程—即下载图片的线程;另外是主 UI 线程—即图片下载完成后进行显示的线程。针对这个场景分别用两幅实现的流程图来区分同步和异步。从图中可以看到,二者的区别在于:同步时当前主线程会阻塞,直到子线程通知主线程为止(先不考虑ANR);而异步的时...

zhwadezh的博客 9010

Android中的多线程编程与异步处理

在移动应用开发中,用户体验是至关重要的。一个流畅、高效的应用能够吸引用户并提升用户满意度。然而,移动应用面临着处理复杂业务逻辑、响应用户输入、处理网络请求等多个任务的挑战。为了确保应用的性能和用户体验,多线程编程和异步处理成为了不可或缺的技术手段。在移动应用中,涉及到耗时操作的任务包括但不限于:网络请求、数据库操作、图片加载、文件读写等。如果这些耗时操作都在应用的主线程(也称为UI线程)中执行,将导致应用界面的卡顿、卡死,甚至导致应用无响应(ANR)的错误。

虎哥LoveDroid 3008

android 异步线程的实现

调用Looper.prepare();注:1.因为在activity对象在构造前其所在的线程就已经执行Loop.prepare函数所以,在UI线程中无需进行此操作 2.在此方法内部执行的操作即为其成员变量TreadLocal(TLS)设置一个本线程的...

chunlai9583的博客 577

STM32驱动2.8寸TFTLCD屏幕实战:从看懂原理图到点亮第一个像素(基于ILI9341)

本文详细介绍了如何使用STM32驱动2.8寸TFTLCD屏幕(基于ILI9341驱动芯片),从硬件连接到软件配置,包括FSMC接口设置、ILI9341初始化序列、坐标设置及基础绘图函数实现。文章还提供了常见问题排查指南和性能优化技巧,帮助开发者快速解决屏幕不亮等问题,并提升显示性能。

weixin_42665255的博客 267

Android开发基础(八):多线程及异步任务处理

(个人经验,仅供参考,错误之处,敬请谅解) 实现方式 Timer定时器 private void setCurrentProgress() { timer=new Timer(); task=new TimerTask() { @Override public void run() { Thread t=new Thread(){ ...

WihauShe's Blogger 203

利用Arcgis提取nc数据并计算区域年均温

1.下载数据。2.解压数据至不含中文的路径中。打开工具箱中的多维分析工具-创建NetCDF栅格图层,导入数据。3.打开工具箱中的数据管理工具-图层和表视图-创建栅格图层,导入数据,对输出数据进行命名,得到月均温栅格数据。4.选择工具箱-Spatial Analyst工具(空间分析工具)-地图代数-栅格计算器,计算全国一年年均温。​5.将其导出为.tif格式数据,方便后期使用。6.选择工具箱-Spatial Analyst工具(空间分析工具)-区域分析--以表格显示分区统计,得到分区域的气温数据。

什么都学亿点点的博客 7992

esp32移植canopen协议栈(二)

本文续接上一篇文章,之前我们已经搭建好了esp32的开发环境,以及初始工程。接下来我们开始实现can驱动相关,以及使用c++封装can接口。本文使用esp32实现c++实现can驱动层的封装。下一步移植canopen!!!嘻嘻。

qq_50267418的博客 1906

Android多线程和异步任务

1、Android开发中使用多线程的原因 避免ANR(Application is not responding) 实现异步,比如从云端获取图片比较费时,不应该使用同步阻塞获取结果,使用异步加载完成一个刷新一个 (这种要用到线程池?) 多任务,比如多线程下载 2、同步和异步的理解 有些事件必须使用同步比如用户的注册,需要得到结果后才能进行下面的操作,有些事件需要异步,比如微博...

wallance111的博客 2053

数据挖掘实战-基于决策树算法构建北京市空气质量预测模型

通过分析这些数据,我们将利用决策树算法建立预测模型。决策树算法具有直观易懂、分类效果好等优点,适合用于此类预测问题。我们将采用适当的方法对模型进行训练和优化,以提高预测精度。最终,我们将评估模型的预测效果,并探讨其在实际应用中的可行性和潜在价值。希望通过本实验,能为北京市的空气质量改善工作提供一定的支持。通过基于决策树算法构建的北京市空气质量预测模型的实验研究,我们在多方面取得了显著的进展。首先,我们成功地整合了来自气象、环保、交通等多个领域的大量数据,形成了一个全面而综合的空气质量分析框架。

m0_64336780的博客 2万+

Android多线程和常用异步处理技术

Android多线程和常用异步处理技术 一、Android多线程概述 1.概述:表示一个程序的多段语句同时执行,但并不等于多次启动一个程序,操作系统也不会把每个线程当作独立的进程来对待。 2.线程和进程的区别: ①两者粒度不同,是两个不同层次上的概念。进程是由操作系统来管理,而线程则是在一个程序(进程)内; ②不同进程的代码和状态都是完全独立的,而一个程序内的多线程是共享同一块内存空间和同一组系统资源,有可能相互影响; ③线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切

m0_66309026的博客 3588

13、网络通信中的字节序与内存测试

本文主要探讨了网络通信中的字节序问题以及嵌入式系统中内存测试的相关内容。在网络通信部分,重点分析了大端序和小端序的差异,以及TCP/IP协议中字节序的转换机制,并介绍了相关的宏定义和实现方法。在内存测试部分,详细阐述了内存测试的目的、常见问题以及具体的测试策略,包括数据总线测试、地址总线测试和设备测试。通过这些内容,嵌入式程序员可以更好地理解并解决实际开发中可能遇到的字节序和内存问题,从而提高系统的稳定性和可靠性。

mmm90的博客 111

matlab 点云均值、中值、高斯滤波【2024最新版】

点云均值滤波、中值滤波、高斯滤波的matlab自带函数实现。博客长期更新,本文最近一次更新时间为:2024年11月9日。

点云侠的博客 5259

java安卓开发异步任务_Android笔记4-android之多线程和异步任务

Android之多线程和异步任务为什么要用多线程1.提高用户体验或者避免ANR2.异步应用中有些情况下并不一定需要同步阻塞去等待返回结果,可以通过多线程来实现异步,例如你的应用中的某个Activity需要从云端获取一些图片,加载图片比较耗时,这时需要使用异步加载,加载完成一个图片刷新一个。3.多任务多任务下载后两点与java中的多线程应用没有太大的区别什么事ANRApplication Not R...

weixin_30935961的博客 258

YOLOv12改进策略【Neck】| 使用CARAFE轻量级通用上采样算子

CARAFE内容感知的特征重新组合。

Limiiiing的博客 664

Android多线程:Handler runOnUiThread 异步消息处理机制

Android用户界面是与用户交互的接口,对于用户的操作,Android迅速响应用户输入(200ms内)是一个重要目标。因此,一些耗时操作(如:后台下载,异步加载图片等)需要放在子线程中运行,否则会导致主线程阻塞。

IH_LZH的博客 3512

【OpenClaw从入门到精通】第03篇:吃透Gateway/Skills/ClawHub核心概念(2026实测+避坑)

本文针对OpenClaw新手易混淆的核心概念痛点,以通俗类比+实操演示拆解OpenClaw核心、Gateway、Skills、ClawHub四大组件。通过“数字员工团队”类比明确各组件定位:OpenClaw核心是“老板”(调度中心)、Gateway是“前台+后勤”(后台进程)、Skills是“专业员工”(功能插件)、ClawHub是“人才市场”(技能商店)。补充版本更名史、技能加载优先级、ClawHub与GitHub区别等关键细节,结合“AI融资新闻查询并邮件推送”虚拟案例演示组件协同流程,梳理5个高频认知

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 5041

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android多线程与异步处理:从Handler到Kotlin协程

Android异步编程经历了漫长的演进,最终Kotlin协程以其优雅和强大的特性成为了现代Android开发的首选。对于所有新项目,请毫不犹豫地使用Kotlin协程。对于旧项目,理解Handler等传统机制仍然是必要的。

m0_65382359的博客 1319

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android之多线程与异步浅析

一、如何理解同步与异步? 同步:发出动作后,在收到响应前,什么都不能做; 异步:发出动作后,可以去做其他的事情,不用等待响应。 通俗的理解上述两个概念:同步就是我喊你去吃饭,我要一直等到你回应;异步就是我喊你去吃饭,我就去了,不管你是否回应。 二、为何要用异步? Android应用程序在启动时,系统会自动的为该程序生成一个UI线程(即我们常说的主线程),更新页面(UI)的操作都必须在UI线程中进行。 ...

韩家老大的博客 407

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

安卓 Java 中比 RxJava 更好用的多线程异步框架 MultithreadingExecutor

RxJava存在机械设计、过度封装和功能不全等问题,导致开发者使用体验不佳。为此,作者开发了新的多线程异步框架MultithreadingExecutor(ME),具有操作简单、设计自由度高、支持流式编程和生命周期回调等特点。ME提供多种线程模型,包括单线程执行器、异步单线程执行器和组队任务执行器等,并支持安卓环境适配。通过实战代码展示了ME的用法,如全局单线程执行器的创建和任务提交。ME框架在简化操作的同时保留了开发者的调优自由度,解决了RxJava的痛点问题。

暗诺星刻的博客 1035

Android异步任务与多线程,一个月成功收割腾讯、阿里、字节offer

ANR全程Application Not Responding,意思是程序未响应,如果一个应用无法响应用户的输入,系统就会弹出一个ANR对话框,用户可以自行选择继续等待亦或停止当前程序。

2401_83621541的博客 1016
上一篇: Android开发七:SSL
下一篇: SQLServer:Join,Left Join,Right Join
半部論語
博客等级 码龄14年 8粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值