zoukankan      html  css  js  c++  java
  • Android handler

    普通的handler类是没有实现多线程的,在android中的handler要实现多线程,可以使用HandlerThread这个类,如下所示

    package com.handlerThread;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.HandlerThread;
    import android.os.Looper;
    import android.os.Message;
    
    public class handlerThread2 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            System.out.println("activity线程ID:"+Thread.currentThread().getId());
            HandlerThread handlerThread = new HandlerThread("handlerThread");
            handlerThread.start();
            MyHandler handler = new MyHandler(handlerThread.getLooper());
            Message msg = handler.obtainMessage();
            msg.sendToTarget();
        }
        class MyHandler extends Handler {
    
            public MyHandler() {
                super();
                // TODO Auto-generated constructor stub
            }
    
            public MyHandler(Looper looper) {
                super(looper);
                // TODO Auto-generated constructor stub
            }
    
            @Override
            public void handleMessage(Message msg) {
                // TODO Auto-generated method stub
                super.handleMessage(msg);
                System.out.println("handler线程ID:"+Thread.currentThread().getId());
            }
            
        }
    
    }

    运行结果:

    由此才可以说handler实现了真正意义上的多线程。

    在上面的程序中我们看到有个新知识looper,那么什么是looper呢,如下是官方的解释

    大概的意思就是说,looper是用来循环获取消息的,那么整个流程就可以看作是handler往消息队列中添加消息,looper再循环获取这些消息。

  • 相关阅读:
    java 环境变量配置
    框架分成介绍
    Net 新特性
    一 设计模式六大原则
    web api 配置
    Visual Studio检查内存泄露方法
    深度比较对象的不同
    reportview 安装使用
    Nuget 常用命令
    freeswitch学习笔记
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4258922.html
Copyright © 2011-2022 走看看