Android学习之Handle
2015-07-13 10:25
225 查看
handle:只要是接收子线程发送的数据,并根据此数据配合主线程更新UI。
可能遇到的问题之一:为什么会出现强制关闭对话框现象?其原因在于:在开启应用程序时,Android会开启一个主线程,主线程是管理界面的UI工具,会进行事件的分发。当进行一个耗时的操作比如连网读取数据或读取本地一个大文件时,界面会出现假死现象,如果在5s内没有反应,就会弹出系统的“强制关闭”错误提示。
问题之二:怎么解决此现象?其办法就是将耗时的操作放在一个子线程中处理,而子线程中涉及UI更新时主线程将不安全即UI的更新只能在主线程中进行。此时就要用到Handle来解决这个问题,将Handle放在主线程中运行,通过Message与子线程进行数据的传递;即将子线程中传递来的Message对象放到主线程中,配合UI界面的更新。
特点:Handle可以分发Message对象或Runnable对象到对应的主线程中,每个Handler实例都是绑定到其创建的线程当中。
其主要作用有:
1.安排消息或Runnable在某个主线程中的其他地方执行;
2.安排一个动作在不同的线程当中去执行。
Handler中分发消息的方法:
post(Runnable)
postAtTime(Runnable,long)
postDelayed(Runnable long)
sendEmptyMessage(int)
sendMessage(Message)
sendMessageAtTime(Message,long)
sendMessageDelayed(Message,long)
post类方法允许你排列一个Runnable对象到主线程队列中;
sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新。
可能遇到的问题之一:为什么会出现强制关闭对话框现象?其原因在于:在开启应用程序时,Android会开启一个主线程,主线程是管理界面的UI工具,会进行事件的分发。当进行一个耗时的操作比如连网读取数据或读取本地一个大文件时,界面会出现假死现象,如果在5s内没有反应,就会弹出系统的“强制关闭”错误提示。
问题之二:怎么解决此现象?其办法就是将耗时的操作放在一个子线程中处理,而子线程中涉及UI更新时主线程将不安全即UI的更新只能在主线程中进行。此时就要用到Handle来解决这个问题,将Handle放在主线程中运行,通过Message与子线程进行数据的传递;即将子线程中传递来的Message对象放到主线程中,配合UI界面的更新。
特点:Handle可以分发Message对象或Runnable对象到对应的主线程中,每个Handler实例都是绑定到其创建的线程当中。
其主要作用有:
1.安排消息或Runnable在某个主线程中的其他地方执行;
2.安排一个动作在不同的线程当中去执行。
Handler中分发消息的方法:
post(Runnable)
postAtTime(Runnable,long)
postDelayed(Runnable long)
sendEmptyMessage(int)
sendMessage(Message)
sendMessageAtTime(Message,long)
sendMessageDelayed(Message,long)
post类方法允许你排列一个Runnable对象到主线程队列中;
sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新。
相关文章推荐
- android之java程序性能优化
- 获取手机的短信内容和联系人信息
- Android Webview中调用本地java方法
- Android 广播的发送与接收
- 从Handler+Message+Looper源码带你分析Android系统的消息处理机制
- 让一个Activity在开机后自动显示(可推广到开机自启服务)
- Android ViewDragHelper完全解析 自定义ViewGroup神器
- Android ViewDragHelper完全解析 自定义ViewGroup神器
- Android性能优化之内存篇
- Pro Android学习笔记(二)——ContentProvider(下)
- android开发学习:打电话和发短信
- Android蓝牙BLE开发步骤
- Android studio 解决setText中文乱码问题
- android文件缓存,并SD卡创建目录未能解决和bitmap内存溢出解决
- Windows风格的Loading动画Android实现(1)
- Android线程的创建与销毁
- android 动画效果
- 一些android错误
- 使用Android studio中遇到的各种问题记录
- Android(java)学习笔记124:Android权限大全