窗体与子线程间通讯方法窗体上的UI默认情况下不允许使用子线程(或者其它非创建控件的UI线程)去控制(这在NET2.0以下是允许的,但是考虑到安全性等问题,从2.0开始就禁止使用这个功能,除非Form的CheckForIllegalCrossThreadCalls=true,不推荐这样使用)。那么怎么...
分类:
编程语言 时间:
2014-07-31 16:12:16
阅读次数:
225
这里主要讲的是Android中线程的概念,自己的线程不能更新UI线程中的视图。如果把Handler设置在自己的线程中,那么必须建立一个Looper。至于为什么在Activity中建立Handler就不用建立一个Looper呢,因为在UI线程初始化时就已经有一个Loop了,所以直接用就行。这里还需要注...
分类:
其他好文 时间:
2014-07-31 16:11:06
阅读次数:
181
Handler类:1 在子线程中发送Message2 在主线程中获取、处理Message在新线程中 通过Handler机制通知UI线程改变界面。每个线程只能拥有一个Looper,而每个Looper关联一个MessageQueueUI线程中,系统默认初始化了一个Looper对象。Looper、Mess...
分类:
移动开发 时间:
2014-07-30 12:05:13
阅读次数:
187
Toast要求运行在UI主线程中,所以要想Toast能够正常工作那个必须把它发到UI线程中。
Service运行在主线程中,因此Toast是正常的。
IntentService运行在独立的线程中,因此Toast不正常。...
分类:
其他好文 时间:
2014-07-27 11:53:24
阅读次数:
189
1. 什么是ANR? ANR(Application Not Responding)即应用程序无响应。 2. ANR产生的原因是什么? ANR产生的根本原因是APP阻塞了UI线程。在android系统中每个App只有一个UI线程,是在App创建时默认生成的,UI线程默认初始化了一个消息循环来处理UI...
分类:
其他好文 时间:
2014-07-24 22:51:43
阅读次数:
1406
在本系列文章的第一篇《Android多线程分析之一:使用Thread异步下载图像》中,曾演示了如何使用 Thread 来完成异步任务。Android 为了简化在 UI 线程中完成异步任务(毕竟 UI 线程是 app 最重要的线程),实现了一个名为 AysncTask 的模板类。使用 AysncTask 能够在异步任务进行的同时,将任务进度状态反馈给 UI 线程(如让 UI 线程更新进度条)。正是由于它与 UI 线程紧密相关,使用的时候要就有一些限制,AysncTask 必须在 UI 线程中创建,并在 UI ...
分类:
移动开发 时间:
2014-07-19 18:16:19
阅读次数:
265
在本系列文章的第一篇《Android多线程分析之一:使用Thread异步下载图像》中,曾演示了如何使用 Thread 来完成异步任务。Android 为了简化在 UI 线程中完成异步任务(毕竟 UI 线程是 app 最重要的线程),实现了一个名为 AysncTask 的模板类。使用 AysncTas...
分类:
移动开发 时间:
2014-07-19 16:01:27
阅读次数:
229
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线
程自身中使用,而后者在非UI线程中使用。
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单
线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中...
分类:
移动开发 时间:
2014-07-19 02:24:06
阅读次数:
188
开发过程中有时候会在Thread类中执行某些操作,有些操作会由于Android版本的不同,尤其是低版本而Crash,因此必要的时候会查看某些容易引起crash的操作是否是在主线程,这里举三种方法:
方法一:使用Looper类判断
Looper.myLooper() != Looper.getMainLooper()
方法二:通过查看Thread类的当前线程
Thread.currentT...
分类:
移动开发 时间:
2014-07-18 14:02:15
阅读次数:
208
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:...
分类:
移动开发 时间:
2014-07-18 10:31:16
阅读次数:
267