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!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

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

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...