Android的多线程

  次阅读 来源:互联网(转载协议) 2016-01-13 22:10 我要评论(0)

1.在Android中,线程的类型:

a.有消息循环的线程;

b.无消息循环的线程;

2.线程分为:

a.UI线程;

b.子线程;

3.主线程与子线程的区别:

只要是关于UI相关的东西,就不能放在子线程中处理,因为子线程是不能操作UI的,只能进行数据、系统等其他非UI的操作

4.有消息循环的线程一般都会有一个Looper

5.主线程(UI线程)就是一个消息循环的线程。

6.Handle如何初始化:

Handle的初始化函数(构造函数),

1.如果没有参数,那么他就默认使用的是当前的Looper;

2.如果有Looper参数,就是用对应的线程的Looper。

7.如何获得线程的Looper:

Looper.myLooper();//获得当前线程的Looper

Looper.getMainLooper () //获得UI线程的Lopper

8.消息处理过程:

a.发送消息;

b.获取消息;

c.处理消息;

9.Handler在应该在哪个线程中创建:

handler应该由处理消息的线程创建;

也就是说,如果handler的函数handleMessage里处理的是UI的消息,也就是更新界面的事情,那么该handler需要在主线程中创建;

10.Handler的作用:

1.是把消息加入特定的(Looper)消息队列中;

2.分发消息;

3.处理该消息队列中的消息;

11.handler与创建它的线程之间的关系:

handler与创建它的线程相关联,而且也只与创建它的线程相关联。

handler运行在创建它的线程中,所以,如果在handler中进行耗时的操作,会阻塞创建它的线程。

12.handle运行在哪个线程中(主线程还是子线程):

handler运行在创建它的线程中,所以,如果在handler中进行耗时的操作,会阻塞创建它的线程。

13.结合具体代码,详解Handle的创建:

package com.android.tutor;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

public class HandlerDemo extends Activity {

//title为setTitle方法提供变量,这里为了方便我设置成了int型

private int title = 0;

private Handler mHandler = new Handler(){

public void handleMessage(Message msg) {

switch (msg.what) {

case 1:

updateTitle();

break;

}

};

};

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...