您的位置:首页 > 产品设计 > UI/UE

Android平台在UI Thread中执行非UI线程中定义的代码片段的几种方法

2011-08-04 10:08 351 查看
在Android平台中,只有UI Thread负责界面元素操作,而在非UI线程中操作一些比较费时的事情,比如下载文件等。而非UI线程操作完成后往往需要把结果显示在界面中,在这种情况下,就需要几种方式通知UI Thread执行相应的操作。

第一种方法:使用Runnable类

在Activity类中实现并定义Runnable对象,然后调用Activity的runOnUiThread(Runnable action)方法。但这种方法有局限性,在Runnable 对象中操作此Activity对象的元素时,可能会发生异常。比如当我们创建完Runnable对象后发生了横竖屏切换,那么在Runnable对象中使用的元素可能不是现在的Activity对象中的界面元素,这个时候再在UI
Thread中操作的元素是已经destroy的Activity的界面元素,所以必然会发生异常。

第二种方法:使用实现并定义Handler对象

这种方法也会发生上述的异常

第三种方法:使用实现并定义BroadcastReceiver对象

这种方法比较安全,不会发生上述异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: