您的位置:首页 > 移动开发 > Android开发

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对象到队列中,等待更新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: