• android学习Handler使用


             接触android的应用开发已经有一个多月了,对于控件的使用,比较容易掌握,通过xml配置布局,在主程序中建立对应的控件,设置监听,完成用户动作,我说的也只是入门级的水平,本人也是入门级菜鸟,哈哈!对我而言,初学的难度在于handler的使用上,所以在这里详细介绍一下!

             Handler从字面上看就是一个句柄,用于负责发送和处理相应消息,它包括两种队列:线程队列和消息队列,分别通过post和sendmessage来实现。

            使用Handler的流程:

    1、创建Handler对象,可以直接使使用Handler无参构造函数,创建对象,也可以继承handler类,重写HandlerMessage函数,然后创建Handler对象。

    Handler handler = new Handler(){
        public void handleMessage(Message msg) {

          //执行方法
            }
    };

    2、建立Runable对象,复写run方法,run方法中是将要执行的操作。

        Runnable mThread = new Runnable() {
            int i = 0;
            @Override
            public void run() {
                // TODO Auto-generated method stub

                //执行方法
            }
        };

    3、在监听入口中,调用Handler的post或者postDelayed方法,将要执行的线程对象(Runable对象)加入到线程队列中。也可以用sendMessage发送消息,处理消息的地方就是复写的HandlerMessage里。可以通过obtainMessage,获取消息,传递参数。

    handler.post(mThread);

    或者

    Message msg = handler.obtainMessage();
    msg.arg1 = i;

    handler.sendMessage(msg);

    想要线程停止,可以调用Handler对象的removecallbacks(Runable r)从线程队列中移除线程对象。

    注意:线程对象和消息对象分别对应线程队列和消息队列,处理也是分成了post和SendMessage两种,要加以区分。

                Handler分发Message对象和Runable对象到主线程,每个handler实例都会绑定到创建他的线程中。

    ps:我也看书和自己练习总结的,可能有说的不清楚的地方!

  • 相关阅读:
    自执行匿名函数
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    iframe的滚动条问题:显示/隐藏滚动条
    选择器的整理
    html标记
    Axure RP
    苹果官方人机交互指南中明确定义了应用中需要包括的图标和启动画面图片
    tableview_nav 动画效果
    WebView加载HTML图片大小自适应与文章自动换行
    iOS App创建桌面快捷方式
  • 原文地址:https://www.cnblogs.com/candycaicai/p/2020670.html
Copyright © 2020-2023  润新知