线程间通讯:把一个线程中计算的结果传递到另一个线程中使用。 示例场景:子线程下载网络图片,回主线程更新UI。 NSThread示例代码: 关键代码: GCD示例代码: ...
分类:
编程语言 时间:
2017-01-09 18:15:57
阅读次数:
197
一、前言 在单线程中设置窗体某个控件的值很简单的事,只需要设置控件文本的值就可以了,但是有的业务场景很是复杂,界面上的控件也很多,这种情况下当数据量比较多的时候,在单线程中更新UI不可避免地会发生假死或卡顿现象,用户体验十分不爽,所以必须采用多线程来处理数据和UI。但是如果直接添加一个线程来更新控件 ...
分类:
编程语言 时间:
2017-01-09 00:33:01
阅读次数:
319
上一篇我介绍了Handler机制的工作原理,默认情况下,ActivityThread类为我们创建的了主线程的Looper和消息队列,所以当你创建Handler之后发送消息的时候,消息的轮训和handle都是在ui线程进行的。这种情况属于子线程给主线程发消息,通知主线程更新ui...等,那么反过来,怎 ...
分类:
编程语言 时间:
2016-12-28 19:07:32
阅读次数:
235
上一节我们讲解了Handler的基本使用方法,也是平时大家用到的最多的使用方式。那么本节让我们来学习一下Handler的工作原理吧!!! 我们知道Android中我们只能在ui线程(主线程)更新ui信息,那么你们知道为什么只能通过Handler机制更新ui吗?其实最根本的目的就是解决多线程并发的问题 ...
分类:
其他好文 时间:
2016-12-28 12:43:37
阅读次数:
231
作为一个Android开发者,我们肯定熟悉并使用过Handler机制。最常用的使用场景是“在子线程更新ui”,实际上我们知道上面的说话是错误的。因为Android中只有主线程才能更新ui,那么当我们在子线程得到更新ui通知的时候怎么办?此刻Handler存在的意义就体现出来了。我们在子线程用hand ...
分类:
其他好文 时间:
2016-12-27 23:26:05
阅读次数:
230
Android开发中常常有用户头像显示,似乎大多数都是圆形显示,如果每次加载网络头像,会频繁的请求网络,所以本文主要说的是登录时的头像网络加载和缓存到本地,以便于下次加载时直接从本地获取即可。 效果图 自定义控件实现圆形头像显示请看, Android自定义ImageView实现图片圆形 ,椭圆和矩形 ...
分类:
其他好文 时间:
2016-12-20 09:54:36
阅读次数:
192
注:转载注明出处 异步任务:用于解决线程之间的数据传递(UI线程不能完成耗时操作,由子线程完成) AsyncTask异步任务执行流程: 1 继承AsyncTask类 参数:parmas progress result class MyAsyncTask extends AsyncTask<Strin ...
分类:
其他好文 时间:
2016-12-15 21:03:57
阅读次数:
246
注意: (1)主线程不能够做耗时的操作,网络请求就是耗时的操作需要放到子线程做。 (2)子线程不能更新控件的内容(更新Ui)。所以产生了矛盾,解决办法就是使用Handler(处理消息机制). Handler:消息机制的写法(重要) 使用Handler的步骤: 1.主线程中创建一个Handler 2. ...
分类:
移动开发 时间:
2016-12-14 02:09:23
阅读次数:
173
一、一般我们都会在子线程完成一些耗时的操作。 1、Android中消息机制: 2、知识点: Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 Handler:处理者,负责Message的发送及处理。使用Handler ...
分类:
编程语言 时间:
2016-12-09 16:28:25
阅读次数:
226
一、Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI。 解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button ...
分类:
移动开发 时间:
2016-12-06 20:55:04
阅读次数:
256