首页 > 代码库 > 【Android 初学】11、关于Android当中的线程(初级)

【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当中发送消息