【Android】在线程中使用Handler
2016-01-07 16:07
435 查看
Handler类的主要作用有两个:
(1)在新启动的线程中发送消息;
(2)在主线程中获取、处理消息。
每个线程中只有一个Looper, 负责管理MessageQueue, 它的loop方法会不断地从MessageQueue中取出消息,并将消息分给对应的Handler处理。
MessageQueue由Looper负责管理,采用先进先出的方式来管理Message。 Handler能把消息发送给Looper管理的MessageQueue,并负责处理Looper分给它的消息。
主UI线程中,系统已经初始化了一个Looper对象,所以可直接创建Handler即可;而程序员自己启动的子线程,必须自己创建一个Looper对象,并启动它。
步骤如下:
(1)调用Looper.prepare()方法为当前线程创建Looper对象,创建Looper对象时,它的构造器会创建与之配套的MessageQueue.
(2)创建Handler子类的实例,重写handleMessage()方法,负责处理来自其他线程的消息。
(3)调用Looper.loop()方法启动Looper。
每个线程只能拥有一个Looper.它 的Loop方法负责读取MessageQueue中的消息,读到消息之后就把消息交给发送该消息的Handler处理。
(1)在新启动的线程中发送消息;
(2)在主线程中获取、处理消息。
每个线程中只有一个Looper, 负责管理MessageQueue, 它的loop方法会不断地从MessageQueue中取出消息,并将消息分给对应的Handler处理。
MessageQueue由Looper负责管理,采用先进先出的方式来管理Message。 Handler能把消息发送给Looper管理的MessageQueue,并负责处理Looper分给它的消息。
主UI线程中,系统已经初始化了一个Looper对象,所以可直接创建Handler即可;而程序员自己启动的子线程,必须自己创建一个Looper对象,并启动它。
步骤如下:
(1)调用Looper.prepare()方法为当前线程创建Looper对象,创建Looper对象时,它的构造器会创建与之配套的MessageQueue.
(2)创建Handler子类的实例,重写handleMessage()方法,负责处理来自其他线程的消息。
(3)调用Looper.loop()方法启动Looper。
每个线程只能拥有一个Looper.它 的Loop方法负责读取MessageQueue中的消息,读到消息之后就把消息交给发送该消息的Handler处理。
相关文章推荐
- 初识Camera,调用系统拍照录像程序
- Android Activity ConfigChanges属性
- android效果背景虚化
- Unable to resolve target 'android-14'解决方法
- GCM推播訊息(notification)延遲問題
- android 快速开发(三)巧用公共标题栏:避免每次activity都得写标题栏
- Android 6.0 新特性
- Android RecyclerView 的基本使用
- android中DatePickerDialog只显示年月
- Android 串口读取设备相关知识。。总结比较乱,部分转载(未完)
- 简析Android内存泄漏
- Android Handler使用Message的一个注意事项
- Android:No permission to write APN settings(沒有写入 APN 设置的权限)
- [转]Try Cloud Messaging for Android
- Android 实例:使用Android 里的intent
- Android Drawer抽屉布局的实现
- OpenCV for Android Studio 学习笔记(一):NDK及OpenCV的安装配置
- Android DrawerLayout 高仿QQ5.2双向侧滑菜单
- Android系统之路(初识MTK) ------ 内置三方apk到Rom可移动/可卸载
- Import adt 项目到android studio解决的问题总结