首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android 异步更新UI-handler+thread

2013-09-13 
Android 异步更新UI----handler+threadandroid应用是单线程模式的。单线程模式需要记住两条:一、防止UI线程

Android 异步更新UI----handler+thread

android应用是单线程模式的。

单线程模式需要记住两条:

一、防止UI线程阻塞

二、确保只在UI线程中访问Android UI工具包

在开发Android应用时必须遵守单线程模型的原则:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。

每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。

开一个线程或者在后台线程中来执行耗时的操作,如下面的例子:

public void onClick( View v ) {  

new Thread( new Runnable() {   

    public void run() {  

Bitmap mImageView.setImageBitmap(bm); //出错!不能在非ui线程操作ui元素其实我们上面提到一个方法Activity.runOnUiThread( Runnable ),将这个Runnable以UI线程的方式启动

android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

热点排行