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对象
这种方法比较安全,不会发生上述异常。
第一种方法:使用Runnable类
在Activity类中实现并定义Runnable对象,然后调用Activity的runOnUiThread(Runnable action)方法。但这种方法有局限性,在Runnable 对象中操作此Activity对象的元素时,可能会发生异常。比如当我们创建完Runnable对象后发生了横竖屏切换,那么在Runnable对象中使用的元素可能不是现在的Activity对象中的界面元素,这个时候再在UI
Thread中操作的元素是已经destroy的Activity的界面元素,所以必然会发生异常。
第二种方法:使用实现并定义Handler对象
这种方法也会发生上述的异常
第三种方法:使用实现并定义BroadcastReceiver对象
这种方法比较安全,不会发生上述异常。
相关文章推荐
- Android中使用异步线程更新UI视图的几种方法
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法 .
- Android 在子线程中更新UI的几种方法
- android.view.ViewRootImpl$CalledFromWrongThreadException:Android2.3后耗时线程不可以在UI线程中执行
- Android开发之子线程操作UI的几种方法
- 浅谈Android中使用异步线程更新UI视图的几种方法
- android中子线程更新UI的几种方法
- Android 在子线程中更新UI的几种方法
- Android在非UI线程中更新UI的方法
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法
- Android非UI线程更新UI的几种方法
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法
- Code Fragment-Android在其他线程可以使用方法在UI线程执行UI相关
- Android 在子线程中更新UI的几种方法
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法 .
- Android 实现延时执行操作的几种方法 总结以及代码
- Android在非UI线程中更新UI的方法
- Android非UI线程更新UI的几种方法
- android中在子线程中更新UI的几种方法