网络操作是一个严重的耗时操作,所以从Android 4.0版本开始,网络操作就被严禁放在主线程中,所以网络操作只能放在异步任务中。下面是一个从网络上下载图片的示例,示例分为两个部分:
- 异步处理下载图片
- UI线程中处理图片下载的图片是在百度图片里面随便找的:http://img1.ph.126.net/GPS04o8gJYuG4ZOwlx6UQA==/978125544087835399....
分类:
移动开发 时间:
2015-07-29 17:18:48
阅读次数:
315
StrictMode是一个开发者工具,它可以帮助我们监测到在大量代码中运行在主线程中我们不容易发现的耗时操作,这些耗时操作显然是放错了位置的,他们应该在工作线程中运行,如果我们自己一行一行去发现这种错误,代码少的话还可以,代码一多,这显然是不可能做到的事情。我们的UI有时候会有卡顿,这也是因为我们不小心在主线程UI中放置了耗时的操作...
分类:
移动开发 时间:
2015-07-29 14:07:21
阅读次数:
219
多线程进程:分配内存线程:执行操作线程串行多线程并行多线程原理:同一时间,CPU只处理一条线程多线程并发执行,CPU快速在多条线程之间调度调度足够快,造成假象线程太多:费CPU资源线程执行频次降低优:提程序执行效率提高资源利用率(CPU内存)缺:开启线程需要占内存空间(默认 主线程1M,子线程512...
分类:
编程语言 时间:
2015-07-28 17:44:05
阅读次数:
172
通常情况下,服务器软件会同时接纳并服务多个用户。当客户请求到达时,服务器主线程会创建一个工作者线程代表服务器为这个客户服务。当用户不需要服务的时候,线程结束,并释放创建线程用到的所有资源。当下一个请求到达的时候,服务器又会创建一个新的线程为之服务。
但是由于创建线程需要很多资源,包括处理器、内存等,这个过程在反复的创建线程中浪费了大量的处理器时间。尤其在大量并发客户的情况下,服务器相应会特别缓慢...
分类:
编程语言 时间:
2015-07-28 13:01:31
阅读次数:
176
Android单线程模型当一个程序第一次启动时,Android会同时启动一个主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户点击按钮的事件,用户接触屏幕的事件以及屏幕绘图事件等,同时,主线程会把相关的事件分发到对应的组件进行处理。所以主线程通常又叫做UI线程。
在开发Android 应用时必须遵守单线程模型的原则:
Android UI操作并不是线...
分类:
移动开发 时间:
2015-07-28 12:59:55
阅读次数:
133
在开发中遇到过这样的需求,主线程中开启多个子线程来处理数据以提高效率,待所有的子线程执行完成任务后,主线程继续完成后续的操作。一番思考后,思路出来了,我的做法是定义一个全局整型的静态变量,每个子线程完成任务后变量加1。主线程里有一个while死循环,每次循环判断这个变量的值,如果值为开启的线程数.....
分类:
编程语言 时间:
2015-07-28 12:47:43
阅读次数:
134
一、Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用。比如可以用handler发送一个message,然后在handler的线程中来接收、处理该消息,以避免直接在UI主线程中处理事务导致影响UI主线程的其他处理工作,Andr...
分类:
移动开发 时间:
2015-07-27 22:53:47
阅读次数:
565
在开发 Android 移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程中执行,避免其占用主线程而给用户带来不好的用户体验。但是在子线程中无法去操作主线程(UI线程),子线程中操作 UI 线程会出现错误。因此 Android 提供了一个类 Handler 来在子线.....
分类:
其他好文 时间:
2015-07-27 20:22:17
阅读次数:
132
关键字:Android 使用handler实现线程间发送消息 (主线程 与 子线程之间)、(子线程 与 子线程之间)
相信大家平时都有使用到异步线程往主线程(UI线程)发送消息的情况。本文主要研究Handler的消息发送。包括主线程往子线程发送消息,子线程之间互相发送消息。
一、主线程向子线程发送消息。
实现过程比较简单:
主线程发送消息到异步线程,异步线程...
分类:
移动开发 时间:
2015-07-26 21:02:15
阅读次数:
123
DT大数据梦工厂第68讲http://yun.baidu.com/s/1jGKSKAi本节王老师讲了Actor的高级应用。首先,主线程可以发消息给子线程,而子线程接收并处理完消息以后,可以返回给主线程一个消息。这就像邮箱的回复。这里可以在receive偏函数中,写一个关键字 sender !后面就是...
分类:
其他好文 时间:
2015-07-26 14:01:27
阅读次数:
125