关闭

Android学习之Handle

264人阅读 评论(0) 收藏 举报
分类:

      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对象到队列中,等待更新。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:71813次
    • 积分:1515
    • 等级:
    • 排名:千里之外
    • 原创:81篇
    • 转载:23篇
    • 译文:0篇
    • 评论:13条
    最新评论