xamarin android异步更新UI线程
16lz
2022-05-06
UI线程简单了解
一些从事web开发的同学,可能对UI线程没有这个概念,没办法,毕竟“UI线程”这个概念只存在一些客户端(window客户端软件、app等)。下面就来简单地了解一下一下这几个概念,理解起来比用起来更简单。其实android在子线程中更新UI线程,一个方法就欧了,RunOnUiThread(System.Action action),这篇写给小白的,如果知道怎么使用这个方法,就没必要看下面的了。
主线程也叫UI线程
当一个程序启动的时候,系统自动创建一个主线程,在这个主线程中,你的应用(app、winform等客户端程序)和UI组件发生交互,负责处理UI组件的各种事件,所以主线程也叫UI线程。
UI组件的更新一定要在UI线程里
android为了线程安全,不允许在UI线程外的子线程操作UI,这个结论不仅仅是说android,这个概念同样适用于其他的客户端系统,它 的好处时提高客户端UI的用户体验和执行效率(稍后解释),防止线程阻塞。在java 原生的android中有两种方式更新UI线程
- handler消息传递机制更新UI线程,http://www.runoob.com/w3cnote/android-tutorial-handler-message.html
- AsyncTask异步任务更新UI线程http://www.runoob.com/w3cnote/android-tutorial-ansynctask.html
AsyncTask是Android提供的一个轻量级的用于处理异步任务的类,只能说有点类似于C#中的Task
android程序中使用异步避免ANR异常
刚刚说了UI组件的更新一定要在UI线程中,当我们在主线程中发起请求>请求的执行(http请求耗时)>请求完成填充数据,更新UI组件。这一过程一旦超过了10秒钟就会抛出ANR异常(Application Not Responding)应用程序员不响应,所以网络请求耗时的操
更多相关文章
- Android事件总线之EventBus3.0基本使用
- 【整理一点资料】 Andorid的进程和线程模型
- [置顶] Android大事记(不断更新中)
- 如何在android的jni线程中实现回调
- Android(安卓)Jni中使用线程及回调更新UI
- 解决Only the original thread that created a view hierarchy c
- 一篇文章带你了解 Android(安卓)消息机制的原理!
- Android(安卓)Junit 单元测试、异步测试方法简介及异步测试框架
- Android(2)—Mono For Android(安卓)App版本自动更新