zoukankan      html  css  js  c++  java
  • android学习之handler

     Android的UI是单线程(Single-threaded)的。为了避免拖住GUI,一些较费时的对象应该交给独立的线程去执行。如果幕后的线程来执行UI对象,Android就会发出错误讯息 CalledFromWrongThreadException。以后遇到这样的异常抛出时就要知道怎么回事了!

    Message(消息): 理解为线程之间交流的信息。发送message信息 更新UI

    hander :  message(消息)的主要处理着,负责消息的发送sendMessage(Message),和message内容的处理 handleMessage(Message) [主要用于更新UI]

    Message Queue(消息队列)  : 用于存放handler发布的消息 ,按照先进先出执行  , 

    1.每个message queue都会有一个对应的Handler。

    2.Handler会向message queue通过两种方法发送消息:sendMessage或post 

    这两种消息都会插在message queue队尾并按先进先出执行。但通过这两种方法发送的消息执行的方式略有不同:通过sendMessage发送的是一个message对象,会被Handler的handleMessage()函数处理;而通过post方法发送的是一个runnable对象,则会自己执行。 

    Looper:Looper是每条线程里的Message Queue的管家   Android会自动替主线程(UI线程)建立Message Queue,但在子线程里并没有建立Message Queue。所以调用Looper.getMainLooper()得到的主线程的Looper不为NULL,

  • 相关阅读:
    五子棋
    团队项目:五子棋
    101空降师506团2营E连全体成员
    团队作业七
    作业六
    团队作业(五)——旅游行业的手机App
    团队任务四(无图)
    团队作业三(补二)
    菜的抠脚团队正式成立
    团队作业七
  • 原文地址:https://www.cnblogs.com/xiaxiayige/p/3445517.html
Copyright © 2011-2022 走看看