android多线程开发保持清晰顺序实践

今天在开发的过程中需要给之前的程序加上多线程操作,避免networrk on mainthread。

由于代码很多,变量之间错综复杂,后面的变量需要在前面代码的线程中获取,线程的同步就非常关键

我知道的线程同步的方法主要是thread.join(),等待另一个线程的完成再继续进行本线程的工作。

不过在android中,mainThread控制着屏幕的刷新,如果调用在main thread中调用join将会导致屏幕无法刷新。

所以,我们可以通过专门新建一个线程,用这个线程来等待已有线程的结束,在已有线程结束后,在通过runOnUIThread方法通知屏幕刷新。

这是我们的耗时线程(模拟运行3秒):

thread1=new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					Thread.sleep(3000);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		thread1.start();

这是通知线程:

new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					thread1.join();
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}runOnUiThread(new Runnable() {
					public void run() {
					tv2.setText("Tread complete!");
					}
				});
			}
		}).start();

为了可以直观的看到效果,我们可以在之前timerThread源码的基础上添加这段代码,就可以看到,即使在thread1运行的时候,ui线程仍然可以更新。

源码在这里:→http://download.csdn.net/detail/edwardwayne/8697147

时间: 2024-08-07 14:22:09

android多线程开发保持清晰顺序实践的相关文章

Android企业级应用程序开发完整训练:精通Android商业级开发最佳实践的24堂课

从企业级商业实战的角度入手,24小时内通过23个动手实战案例,循序渐进的对Android商业级别的应用程序开发要点各个击破,依托于在多年的Android(6款完整的硬件产品和超过20款应用软件)开发和企业级培训经验(超过150期的次Android的企业内训和公开课),旨在在实务的基础之上帮助你完成任何复杂程序的高质量Android应用程序开发,让Android开发跟上想象的速度.最后,通过ActivityManagerService揭秘Android应用程序一切行为背后的核心根源,让你从此开发应

Android软件安全开发实践(下)

Android开发是当前最火的话题之一,但很少有人讨论这个领域的安全问题.本系列将分两期,探讨Android开发中常见的安全隐患和解决方案.第一期将从数据存储.网络通信.密码和认证策略这三个角度,带你走上Android软件安全开发实践之旅. 过去两年,研究人员已发现Android上的流行软件普遍存在安全缺陷或安全漏洞.漏洞频发的原因可能有很多,例如以下几种. 与一切都是集中管理的iOS相比,Android提供了一种开放的环境,在获得了灵活性.可以满足各种定制需求的同时,也损失了部分安全性. 开发

Android实战开发租赁管理软件(适配UI,数据的存储,多线程下载)课程分享

亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系. 课程内容简单介绍 我们软件是基于移动设备的.所以我们必定的选择了安卓作为我们的开发工具.课程中,我们将简要的介绍Android的基本概念,然后进行我们的实战开发.在开发中,大家讲学习到主要的组件,适配UI,数据的存储,多线程下载,开机广播,闹钟提醒,短信发送等实际项目开发中碰到的实用的知识点.通过课程学习,让大家可以掌握Android软件开发的流程,注意点,及优化.帮助大家迅速的掌握An

【Android开发-4】进入实践,最喜欢折腾的计算器

前言:前面对项目文件有了感性认识,接下来我们就需要通过不断实践,对项目的文件有理性的认识.以前折腾Unity3d.IOS开发都是拿计算器开刀,所以这次Android开发实践也不例外,继续拿计算器折腾.通过本人总结,你通过折腾计算器,可以学习掌握到对文本.按钮.输入框控件的事件监听触发和一些控件读写操作,编程语言可以接触到字符串的分割.拼接.查找等方法使用,还有if-else,switch控制语句的使用:总之通过操作一款简单的计算器,可以基本熟悉该开发环境下的流程和编程语言的使用. 首先展示下折腾

[Android学习笔记]Android中多线程开发的一些概念

线程安全: 在多线程的情况下,不会因为线程之间的操作而导致数据错误. 线程同步: 同一个资源,可能在同一时间被多个线程操作,这样会导致数据错误.这是一个现象,也是一个问题,而研究如何解决此类问题的相关工作就叫做线程同步. android中,处理线程同步的手段就是:锁 一般分为公平锁和非公平锁: synchronized(内部锁,互斥锁):synchronized是JVM提供的线程同步机制,如果出现问题,JVM能捕获异常,并释放资源,具体实现机制需要查看JVM源码 synchronized的使用特

Android应用开发:核心技术解析与最佳实践pdf

下载地址:网盘下载 <Android开发模式与最佳实践>首先介绍了安卓开发的基础知识,包括如何搭建环境.一般的开发流程.给App添加测试用例等.接下来是组成安卓框架的各个模块和组件,包括应用的结构,如何使用widget和component,以及怎么使用view.然后介绍了应用的设计模式,以及如何创建一个方便管理和更新的App,包括如何添加多媒体和网络连接等.<Android开发模式与最佳实践>后面部分也覆盖了可选hardware组件.安卓Wear和安卓TV.最后介绍了一些关键的优化

Android应用开发企业级最佳实践

一:家林的话: APK是AF(Application Framework)和应用开发工程师共同智慧的结晶,APK的运行是AF和应用开发工程师开发的Code相互作用. 本课程依据和Android之父以及Google.三星.HTC中的Android团队合作的经验,力求从设计者的角度带领大家彻底洞悉AF,先从AF的架构和移植讲起,然后详细的以AMS.PMS.WMS的Code细致验证和深度剖析,最后以ANR的彻底剖析结束. 二:这个课程能带给您什么价值? 1, 有Android App开发经验应用软件开

Android+PHP开发最佳实践

本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧.从前期的产品设计.架构设计,到客户端和服务器的编码实现,再到性能测试和系统优化,以及最后的打包发布,完整地介绍了移动互联网应用开发的过程.同时,本书也介绍了Android系统中比较有特色的功能,比如Google地图.LBS功能.传感器.摄像头.多媒体以及语音功能的使用等.此外,本书还介绍了Android NDK的开发以及Android游戏开发的相关内容,包括OpenGL的使用.流行游戏

Android艺术开发探索第三章————View的事件体系(下)

Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动,现在我们再来聊聊一个比较核心的知识点,那就是事件分发了,而且他还是一个难点,我们更加应该掌握,View的滑动冲突一直都是很苦恼的,这里,我们就来一起探索一下 1.点击事件的传递规则 我们分析的点击事件可不是View.OnClickListener,而是我们MotionEvent,即点击事件,关于M