一、什么是Surface
简单的说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都要画在Surface的Canvas上(后面有原因解释)。传统的view共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行。
在SDK的文档中,对Surface的描述是这样的:“Handle onto a r...
分类:
移动开发 时间:
2014-10-13 14:10:19
阅读次数:
308
在Android的子线程去更新UI的内容,会导致不确定的异常。因为Android有个模式是,单一线程模型:Android UI工具箱(toolkit)不是一个线程安全的,并且它总是被放在主线程上操作。public void onClick(View v) { new Thread(new Run.....
分类:
移动开发 时间:
2014-10-10 14:44:54
阅读次数:
279
Android中有些比较耗时的东西不能放在UI线程里面,因为当时间超过一段时间(大概5秒),就会出现ANR(Application No Response)错误。所以一些比较耗时的操作,例如联网或者读取一个比较大的文件里面的内容的时候这样才能出现错误。当然,还有其他的规定,Android中对控件的更...
分类:
移动开发 时间:
2014-10-06 14:00:10
阅读次数:
198
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式须要为每个任务创建一个新的线程,任务完毕后通过Handler实例向UI线程发送消息,完毕界面的更新,这样的方式对于整个过程的控制比較精细,但也是有缺点的,比如代码相对臃肿,在多个任务同一时候运行时,不...
分类:
移动开发 时间:
2014-10-04 14:17:46
阅读次数:
280
在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应。 同时我们又需要在工作线程中更新UI界面上的控件,下面介绍几种常用的方法阅读目录线程间操作无效第一种办法:禁止编译器对跨线程访问做检查第二种办法: 使用delegate和invoke来从其他线程中调用控件第三种办法: ...
分类:
编程语言 时间:
2014-10-04 09:42:46
阅读次数:
271
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式须要为每个任务创建一个新的线程,任务完毕后通过Handler实例向UI线程发送消息,完毕界面的更新,这样的方式对于整个过程的控制比較精细,但也是有缺点的,比如代码相对臃肿,在多个任务同一时候运行时,不...
分类:
移动开发 时间:
2014-10-01 14:26:21
阅读次数:
151
1、设置窗口格式为半透明getWindow().setFormat(PixelFormat.TRANSLUCENT);2、Android中在非UI线程里更新View的不同方法:* Activity.runOnUiThread( Runnable )* View.post( Runnable )* V...
分类:
移动开发 时间:
2014-09-27 20:00:30
阅读次数:
198
Android从 2.3 开始提供了一个新的类 StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理 UI 和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。所以当你在UI线程中进行有关网络的操作时,Android2.3及以上版本会抛出android.os.NetworkOnMainThreadException异常...
分类:
移动开发 时间:
2014-09-27 17:42:20
阅读次数:
173
Android中轻松使用线程翻译自http://android-developers.blogspot.jp/2009/05/painless-threading.html 当你第一次启动一个Android程序的时候,一个被称为"mian"的线程就被自动创建了。它被称为主线程或者UI线程,它是非常....
分类:
移动开发 时间:
2014-09-22 18:46:33
阅读次数:
252
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对...
分类:
移动开发 时间:
2014-09-22 14:01:02
阅读次数:
244