zoukankan      html  css  js  c++  java
  • 【Android 初学】11、关于Android当中的线程(初级)

    Start Android


    1、回顾Java当中的线程概念

            1)线程的两种实现方式
            2)线程的生命周期
            3)多线程同步
                    (多个线程访问同一个资源,在同)
    2、MainThread与Worker Thread
            1)UI相关的代码就是MainThread
            2)其他代码就是WorkerThread(不允许操作UI,ProgressBar可以)
            3)在一个应用程序当中,主线程通常用于接收用户的输入,以及将运算的结果反馈给用户(也就是主线程不能阻塞)
                    对于一些可能会产生阻塞的操作,必须放在Worker Thread当中
     3、Android当中的线程使用
     4、什么是Handler
    5、Handler、Looper和MessgeQueue的基本原理(可用于实现线程之间的通信)
            这三者配合可完成消息队列
            1)首先,生成一个类(继承Handler),并创建Handler类的对象的引用Myhandler(名字可自定义)
            2)再将新的firstHandler对象赋值给Handler类的对象的引用Myhandler(向上转型);
            3)Message smg = Myhandler.obtainMessage(); 利用Myhandler对象的obtainMessage方法创建一个消息对象
            4)对msg对象进行操作,让msg附带消息;如:msg.what = 100;
            5)调用Myhandler.sendMessage(msg);方法,将msg这个消息对象放到消息队列当中
            6)Looper将会从消息队列当中将消息取出
            7)Looper将会找到与消息对象对应的Handler对象(这里是Myhandler)
            8)最后Looper将会调用Myhandler对象的handlerMessage(Message msg);方法,用于处理消息对象
     6、通过Handler实现线程间通信
     
    7、在主线程当中实现Handler的handlerMessage()方法
     
    8、在Worker Thread当中通过Handler发送消息
     
      1)准备Looper对象
            在线程的类的run方法中,调用Looper.prepare();
      2)在Worker Thread生成Handler对象
            handler = new Handler(){public void handleMessage(Message msg){}}
      3)在MainThread当中发送消息
     
     
  • 相关阅读:
    MySQL改变表的存储引擎
    数字三角形合集
    POJ 3250 Bad Hair Day 单调栈
    Linux 网卡驱动学习(二)(网络驱动接口小结)
    Lecture Notes: Macros
    [转]LNMP环境下的Web常见问题排查(精品)
    ssh-copy-id password
    python
    python
    Ceph
  • 原文地址:https://www.cnblogs.com/JackOwen/p/3920573.html
Copyright © 2011-2022 走看看