xamarin android异步更新UI线程

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)应用程序员不响应,所以网络请求耗时的操

你可能感兴趣的:(Xamarin,android,xamarin,android入门教程)