zoukankan      html  css  js  c++  java
  • Handler的介绍及实例

    Handler类的介绍
    主要作用:处理大量数据的功能放在单独一个类中
    1.Handler的基本使用
      Handler在使用过程中涉及到两个队列
      1)线程队列
       注意的方法:
       a./**调用post方法,将线程对象加入到消息队列中*/
          handler.post(thread);
       b./**从线程队列中清除此线程对象*/
          handler.removeCallbacks(thread);
       c./**调用postDelayed方法,将线程对象延时加入到消息队列中*/
          handler.postDelayed(thread, 2000);
      2)消息队列
        /**将msg对象加入到消息队列当中*/
        handler.sendMessage(msg);
    2.Handler与线程的关系
       1)利用handler的话直接调用run方法
            执行的是同一个线程,实现方法是handler.post(r);
       2)利用start方法开启
            执行是不同线程,实现方法必须调用start()方法开启
       3)利用handler来实现线程的异步操作
            用到一个重要的类叫looper:循环的从队列中取得消息的功能
        实现异步的步骤:
            a. 先生成一个HandlerThread对象,启动start()方法
           /**生成一个HandlerThread对象,实现了使用looper对象来处理消息队列的功能*/
               HandlerThread handlerThread = new HandlerThread("handler Thread");
               handlerThread.start();
        b.开启start()方法
           handlerThread.start();
        c.创建一个handler,此时的handler从handlerThread得到的参数looper
           MyHandler handler = new MyHandler(handlerThread.getLooper());
    3.Bundle只能以String为键,值为其他基本数据类型的特殊Map
       在handler中传递消息时会使用的类型:
       1)当传递小量数据
           msg.arg1  int 类型
           msg.arg2  int 类型
           msg.obj    引用数据类型
       2)当传递大量数据使用Bundle对象
           绑定数据时候使用msg.setData(b)
           取数据时候使用msg.getData()
           

  • 相关阅读:
    Android权限 uses-permission
    Android中的颜色设置
    px 与 dp, sp换算公式?
    如何成为一名黑客?(转)
    uva 1291(dp)
    框架模式 MVC 在Android中的使用
    CCA概述和安装
    机房收费系统合作版(三)——UI思索
    (36)JS运动之使物体向右运动
    二叉查找树的非递归操作
  • 原文地址:https://www.cnblogs.com/renyuan/p/2553944.html
Copyright © 2011-2022 走看看