关闭

Android中Handler,线程相关问题

286人阅读 评论(0) 收藏 举报

http://www.oschina.net/android/78/handler-and-thread

Android的控件是非线程安全的,在其他线程中操作主线程的控件将可能发生意外的情况,因此设计者希望对控件的操作依然交给主线程去完成,但在其他线程中,我们希望有一种机制去通知主线程去改变控件,于是Handler诞生了。这有点类似C#中的委托,但因为Java中的函数本身不能作为其他函数的参数,我们只能通过发送某个消息来告知主线程中的这个函数:你该如何操作某个控件了!

Handler对象也是运行一个线程上的,默认的空构造函数的Handler将会运行在创建它的线程上。也就是说,样例代码中的Handler是运行在主线程上的一个对象,它拥有一个接受消息的回调函数,这里可以处理一些逻辑,因为它是运行在主线程上的,所以它可以安全的操作控件。而在另一个线程中,我们可以截获Handler的Message,它就向一个邮递员,我们把要送达的信塞给他,然后告诉他:你快送过去吧!而信里则是你希望收信者做的事,邮递员根本没必要知道具体的任务。最终邮递员将信送达,主线程上的收信者拆开信封,看到“50”,他立刻明白:发信者要我把进度改成50%。

如果文字太过枯燥,看一下生动的图片吧:

 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:317525次
    • 积分:3520
    • 等级:
    • 排名:第9324名
    • 原创:41篇
    • 转载:181篇
    • 译文:0篇
    • 评论:23条
    最新评论