• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android Handler介绍,androidhandler介绍

android Handler介绍,androidhandler介绍

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android handler,android handler用法,android handler机制,android handler详解,android handler传值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android Handler介绍,androidhandler介绍


Handler使用介绍:

Handler根据接收的消息,处理UI更新。Thread线程发出消息,通知Handler更新UI。

Handler mHandler = new Handler() { 
  public void handleMessage(Message msg) {  
    switch (msg.what) {  
    case 0x1:  
      view.invalidate(); 
      break;  
    }  
    super.handleMessage(msg);  
  }  
};

class UpdateViewThread implements Runnable {  
  public void run() { 
    while (!Thread.currentThread().isInterrupted()) {    
      Message message = new Message();  
      message.what = 0x1;   
      mHandler.sendMessage(message);  
      try {  
        Thread.sleep(200);   
      } catch (InterruptedException e) {  
        Thread.currentThread().interrupt();  
      }  
    }  
  }  
} 

(1)对于线程中的刷新一个View为基类的界面,可以使用postInvalidate()方法在线程中来处理,其中还提供了一些重写方法比如postInvalidate(int left,int top,int right,int bottom) 来刷新一个矩形区域,以及延时执行,比如postInvalidateDelayed(long delayMilliseconds)或postInvalidateDelayed(long delayMilliseconds,int left,int top,int right,int bottom) 方法,其中第一个参数为毫秒

(2)可以在一个线程的run方法中调用Handler对象的postMessage或sendMessage方法来实现,Android程序内部维护着一个消息队列,会进行轮询处理。

(3)在Android中每一个Thread都跟着一个Looper,Looper可以帮助Thread维护一个消息队列,但是Looper和Handler没有什么关系,从源码中可以看到Android提供了一个Thread继承类HanderThread可以帮助我们处理,在HandlerThread对象中可以通过getLooper方法获取一个Looper对象控制句柄,我们可以将这个Looper对象映射到一个Handler中来实现一个线程同步机制,Looper对象的执行需要进行初始化,可以调用Looper.prepare,使用Looper.release方法释放资源。

(4)对于Android中Handler可以传递一些内容,通过Bundle对象可以封装String、Integer以及Blob二进制对象,我们通过在线程中使用Handler对象的sendEmptyMessage或sendMessage方法来传递一个Bundle对象到Handler处理器。对于Handler类提供了重写方法handleMessage(Message msg) 来判断,通过msg.what来区分每条信息。将Bundle解包来实现Handler类更新UI线程中的内容实现控件的刷新操作。相关的Handler对象有关消息发送sendXXX相关方法如下,同时还有postXXX相关方法,一个为发送后直接返回,一个为处理后才返回。

(5)在Android中提供了一种有别于线程的处理方式,就是Task以及AsyncTask,从源码中可以看到是针对Concurrent的封装,开发人员可以方便的处理这些异步任务。

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android中Handler使用浅析,androidhandler
  • android Handler介绍,androidhandler介绍
  • Android HandlerThread 消息循环机制之源码解析
  • Android消息机制
  • Android安全机制
  • Android消息机制Handler解析(源码+Demo)
  • android handler传递消息机制,androidhandler
  • android源码解析之(三)--)HandlerThread
  • Android基于监听的事件处理机制
  • Android消息机制之Handler,androidhandler

相关文章

  • 2017-05-26Android源码解析--SwipeMenuListView仿QQ聊天左滑
  • 2017-05-26ORB_SLAM2在Android上的移植过程
  • 2017-05-26Android 官方推荐 : DialogFragment 怎样创建对话框
  • 2017-05-26硅谷新闻9--图片三级缓存,
  • 2017-05-26Android Studio多渠道打包
  • 2017-05-26android入门,看这一本书就够了,android入门,
  • 2017-05-26Android 操作数据库的框架——greenDAO的学习
  • 2017-05-26Android Activity生命周期与启动模式,androidactivity
  • 2017-05-26Android 开源库和项目 2,android开源库项目
  • 2017-05-26在Kotlin编写RecyclerView适配器(KAD 16),kotlinrecyclerview

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 从视频中每X秒创建一个缩略图
    • Android常用英文词汇,不为命名纠结,android英文
    • unity安卓读写目录,unity安卓读写
    • Android动画解析(一)—— Frame Animation(帧动画)
    • Activity之概览屏幕(Overview Screen),activityoverview
    • Android studio图片ERROR: 9-patch image xx .9.png malformed
    • hideSoftInputFromWindow,模拟按钮点击事件
    • Android自定义控件
    • Activity、View、Window三者之间的关系
    • Android开发常用小功能

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有