Android学习(33) -- 网络请求总结

来源:互联网 发布:第三方仓储优化 编辑:程序博客网 时间:2024/05/09 20:37

主线程阻塞

  • 在4.0后不能直接在主线程中进行网络操作
  • UI停止刷新,应用无法响应用户操作
  • 耗时操作不应该在主线程进行
  • ANR

    • application not responding
    • 应用无响应异常
    • 主线程阻塞时间过长,就会抛出ANR
  • 主线程又称UI线程,因为只有在主线程中,才能刷新UI

消息队列机制

  • 主线程创建时,系统会同时创建消息队列对象(MessageQueue)和消息轮询器对象(Looper)
  • 轮询器的作用,就是不停的检测消息队列中是否有消息(Message)
  • 消息队列一旦有消息,轮询器会把消息对象传给消息处理器(Handler),处理器会调用handleMessage方法来处理这条消息,handleMessage方法运行在主线程中,所以可以刷新ui
  • 总结:只要消息队列有消息,handleMessage方法就会调用
  • 子线程如果需要刷新ui,只需要往消息队列中发一条消息,触发handleMessage方法即可
  • 子线程使用处理器对象的sendMessage方法发送消息
    *
    这里写图片描述
0 0
原创粉丝点击