`
afro
  • 浏览: 941 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android多线程

 
阅读更多

    在了解android线程之前得先了解一下android的进程。当一个程序第一次启动的时候,android会启动一个LINUX进程和一个主线程,默认的情况下,所有该程序的组件都将在该进程和线程中运行。同时,android会为每一个应用程序分配一个单独的LINUX用户。

Message、MessageQueue、Looper、Handler:

 

Message:线程间交流的信息,通过发送Message给UI线程(也就是主线程),其中包含了消息ID,消息处理对象以及处理的数据,由MessageQueue统一队列,Looper提取,最终由Handler处理。

 

MessageQueue:消息队列,用来存放通过Handler发布来的消息,按照FIFO的规则执行。存放Mesage当然并非实际意义的保存,而是将Message以链表的方式串联起来,等待Looper的提取。

 

Looper:消息泵,是每条线程里的MessageQueue的管家,不断的从MessageQueue中提取Message,因此,一个MessageQueue需要一个Looper。此处要注意的就是,android会自动为主线程建立MessageQueue,但在子线程里并没有,(一般线程只是用来处理庞大数据,处理完了就给主线程发送消息说我这边搞定了,你那边更新一下UI吧,并不接收消息,所以子线程里系统并没有自动生成这个线程的MQ)所以如果子线程中需要接收别的线程发过来的消息,必须初始化Looper,Looper和MessageQueue一一对应,创建一个Looper的同时会创建一个MessageQueue。

 

Handler:消息的发送者以及处理者(就像快递小哥,自己送件,也收件,不知道这个比喻的贴不贴切。。。感觉不贴切的 就自动pass掉这句话吧。)使用时需要handleMessage()方法来处理消息

关于这四个概念的理解,先写到这里,以后有了新的认识再追加。。。

 

四者之间的关系:

生成一个Message后,由Handler发送,然后MQ的入列,Looper提取,再交由Handler处理。这样就完成了异步操作。

分享到:
评论

相关推荐

    Android多线程文件上传

    本主题聚焦于"Android多线程文件上传",我们将探讨如何利用多线程技术来优化文件上传过程,提高效率,并确保应用的响应性。 一、多线程基础 多线程是并发执行多个任务的能力,它允许应用程序同时处理多个任务,提高...

    Android多线程分段下载源码

    这个"Android多线程分段下载源码"实例是一个很好的学习资源,它实现了文件的分块下载,并允许用户自定义线程数来控制下载速度和效率。下面我们将详细探讨这一技术。 首先,我们要理解什么是分段下载。传统的单线程...

    android多线程demo(很清晰很详细)

    本文将深入探讨Android多线程的相关知识点,基于“android多线程demo(很清晰很详细)”的描述,我们将围绕这个示例进行讲解。 1. **线程基础**: - **主线程**:Android应用的UI线程,负责处理用户交互和更新界面。...

    android多线程下载

    通过以上步骤,我们可以实现一个功能完善的Android多线程下载器,它支持暂停、断点续传,并能够根据用户需求进行定制。在项目实践中,务必注意线程同步和数据一致性,以保证下载的正确性。 最后,提供的...

    android多线程断点下载

    总之,Android多线程断点下载是提高用户体验的重要手段,封装好的接口可以让开发者更专注于业务逻辑,而不是复杂的下载实现。通过合理地分块、线程管理和状态保存,我们可以构建一个高效、可靠的下载系统。

    Android多线程操作

    标题"Android多线程操作"和描述"Android多线程开发实例,对使用多线程的用户有一定的参考价值!"暗示我们将深入探讨Android中的线程管理以及如何在实践中有效利用。 Android系统默认运行在主线程,也被称为UI线程,...

    android多线程

    ### Android多线程详解 #### 一、进程与线程概览 在深入探讨Android多线程之前,我们首先理解进程和线程的基本概念。**进程**是正在运行的程序实例,每个进程拥有自己独立的内存空间和系统资源。而**线程**则是...

    Android多线程下载(二)

    总之,Android多线程下载涉及到了Android线程模型、并发控制、文件操作等多个方面,需要开发者有扎实的基础知识和实践经验。通过合理利用多线程,不仅可以提升应用性能,还能提高用户满意度。在实际开发中,要根据...

    android 多线程下载源代码

    在Android开发中,多线程下载是一项常见的任务,特别是在处理大文件时,为了提高下载速度和用户体验,通常会采用多线程技术。本资源提供的"android 多线程下载源代码"是一个很好的学习资料,可以帮助开发者理解并...

    Android多线程下载实现方案

    通过安装`demo.apk`,你可以直观地看到多线程下载的运行效果,同时也可以参考代码学习具体的实现方法,这对于理解和掌握Android多线程下载技术非常有帮助。 总结,Android多线程下载是提升用户体验的重要手段,通过...

    android多线程机制

    ### Android多线程机制详解 #### 一、引言 Android多线程机制是Android开发中非常重要的一部分,尤其是在处理耗时任务(如网络请求、大数据处理等)时,避免阻塞UI线程,保证应用程序的流畅性和响应性。本文将详细...

    Android多线程下载文件

    综上所述,"Android多线程下载文件"是一个涉及多方面技术的复杂任务,包括多线程编程、数据库操作、文件I/O、错误处理等。通过合理的设计和实现,我们可以创建一个高效、可靠的下载系统,为用户提供无缝的下载体验。

    Android多线程下载

    **一、Android多线程下载** 1. **多线程概念**:多线程是指在一个程序中同时运行多个线程,每个线程处理不同的任务。在下载场景下,多线程意味着将一个大文件分割成多个小部分,每个部分由一个独立的线程负责下载。...

    Android多线程全新讲解.pdf

    根据给定的文件信息,文件标题为《Android多线程全新讲解.pdf》,描述为该文档内容的同义表达,标签为“技术及资料”,以及部分内容的概述。在这些信息的基础上,我们可以生成如下知识点: 1. Java多线程基础知识:...

    android 多线程断点下载 (ListView 模式)

    通过以上步骤,我们可以构建一个功能完善的Android多线程断点下载应用,结合ListView展示下载任务,提供良好的用户交互体验。在实际开发中,还需要考虑各种边缘情况,进行充分的测试,以确保系统的稳定性和可靠性。

    Android多线程下载Demo

    本文将深入探讨Android多线程下载的原理、实现方式以及优化策略。 首先,我们要理解为什么需要多线程下载。在单线程下载中,数据流从服务器到客户端是连续的,如果网络状况不佳或者文件体积过大,下载速度可能会...

    android 多线程下载demo

    这个"android多线程下载demo"展示了如何利用多线程分段下载一个APK文件,同时实现实时更新UI展示下载进度,并在下载完成后自动跳转到应用安装界面。以下是对这个Demo涉及知识点的详细解释: 1. **多线程下载**:多...

    Android多线程断点下载(优化)

    在本文中,我们将深入探讨Android多线程断点下载的原理、实现方式以及优化策略。 首先,了解多线程的基本概念是必要的。在单线程下载中,数据流通常是顺序的,如果网络状况不佳,整个下载过程将受到影响。而多线程...

    Android 多线程图片下载开源代码

    1. Android多线程编程:线程池、AsyncTask、Handler/Looper、IntentService 2. 网络请求:HttpURLConnection、OkHttp 3. 图片处理与优化:Bitmap、LruCache、Fresco、Glide 4. 异步编程模型:Callback、LiveData、...

    android多线程后台下载

    android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序,android多线程后台下载示例程序

Global site tag (gtag.js) - Google Analytics