Android+Handler+Thread 那些事儿
前言,才开始学安卓十几天,不料被线程挡住了前进的步伐,因为之前操作系统课程并没有认真听老师讲课,导致现在理解这些抽象的东西有些小困难。没关系,苦学之路,总会碰到坎坷,这里也给那些迷失在Android之路的小生们鼓励,每天多学一点,就是给自己最大的馈赠。
1.可能有很多人看到这个线程就有点慌乱了手脚,这个名词有点高大上,我是这么觉得的,无独有偶,我觉得同步,异步也是一样,如果从一个刚入门Android的同学,可能会很难理解,遇到这些问题就想跳过,我就是这样的人。
2.对于Android开发来说,UI是特别重要的,如果你功能再强大,但是界面真的很丑,那真是太可惜了。所以Android是特别讲究UI主界面的,所以她有一个专门的主线程,就是为了一心一意为他服务的。UI很漂亮,所以我用了她,主线程就是她背后的男人了。
3.女人总是要展示最美的一面给别人看,所以背后掏钱买衣服,买钱包的还是男人-----主线程,当然其他小男人-----子线程,就没有资格了,破坏别人婚姻的都没有资格的,那他们干什么呢...
4.其实这些小男人-----子线程,是为主线程服务的,主线程一个人忙不过来,所以招了一些可靠的人来帮他。比如啊,拿什么快递,拿什么外卖,比较费时的事情,就交给子线程了。如数据库查询啊,文件下载啊,这些主线程都不想亲自去跑,毕竟他还要去疼自己的老婆的。
5.那子线程和主线程怎么交互呢?比如啊,你叫你同学帮你拿快递,这里已经产生了一个子线程,就是你不是亲自去拿快递,你同学扮演的就是子线程。
然后,你跟你同学说,12点的话,帮我把快递放在宿舍,1点的话,帮我把快递放在图书馆,2点的话,帮我把快递放在课室...然后要你同学每个时间段应该怎么做,这些都是定义一个handler,每个时间段就是一个msg.what,但是这些都没有发生过,只是预想。
6.实际上呢,你同学只会传递一个时间的信息给你,说明他都按照你的吩咐去做了,所以这个时间的信息就特别关键了,在Android中叫做Message,在子线程中,也就是你同学的角度,他会sendEmptyMessage给你 ,参数是你自己定义的时间。而作为你的角度,也就是在主线程中,你定义了这些时间信息即是meg.what,然后你根据时间,更新自己的UI了。
7.比如啊,主线程是长江,子线程是长江的支流,然后handler就是支流到长江的一座桥,长江派了一个handler使者去监视支流完成的工作,然后支流打电话msg.what告诉长江这里的情况,然后长江继续向东流,更新UI
8.最后在写一句激励语吧-----既然你选择了,便不顾风雨兼程!晚安思密达-----2017/7/10 0:30
Android+Handler+Thread 那些事儿的更多相关文章
- Android handler Thread 修改UI Demo
/********************************************************************** * Android handler Thread 修改U ...
- 解析Android消息处理机制:Handler/Thread/Looper & MessageQueue
解析Android消息处理机制 ——Handler/Thread/Looper & MessageQueue Keywords: Android Message HandlerThread L ...
- android 多线程Thread,Runnable,Handler,AsyncTask
先看两个链接: 1.http://www.2cto.com/kf/201404/290494.html 2. 链接1: android 的多线程实际上就是java的多线程.android的UI线程又称 ...
- Android Handler leak 分析及解决办法
In Android, Handler classes should be static or leaks might occur, Messages enqueued on the applicat ...
- Android Handler练习
package com.example.myact12; import java.util.Random; import android.support.v7.app.ActionBarActivit ...
- Android Handler简单使用
package com.example.myhandlertest3; import android.os.Bundle; import android.os.Handler; import andr ...
- [Android]Handler的消息机制
最经面试中,技术面试中有一个是Handler的消息机制,细细想想,我经常用到的Handler无非是在主线程(或者说Activity)新建一个Handler对象,另外一个Thread是异步加载数据,同时 ...
- 详解Android Handler的使用-别说你不懂handler
我们进行Android开发时,Handler可以说是使用非常频繁的一个概念,它的用处不言而喻.本文就详细介绍Handler的基本概念和用法. Handler的基本概念 Handler主 ...
- 详解Android Handler的使用
我们进行Android开发时,Handler可以说是使用非常频繁的一个概念,它的用处不言而喻.本文就详细介绍Handler的基本概念和用法. Handler的基本概念 Handler主 ...
随机推荐
- 让你的sharepoint2013具有EMS快递查询的功能
<iframe name="kuaidi100" src="http://www.kuaidi100.com/frame/app/index2.html" ...
- 刚刚写的一个lua下解释csv的工具。
csvtool = {} function csvtool:csv2table(filename) if type(filename) ~= "string" or filenam ...
- ansible使用9-Playbooks: Special Topics
Accelerated Mode port 5099 持续连接30min --- - hosts: all accelerate: true tasks: - name: some task comm ...
- js&jquery:添加事件的三种方法和常用的一些事件
一.添加事件的方法 1.EventTarget.addEventListener添加 获取事件目标元素,通过addEventListener函数添加 // Assuming myButton is a ...
- Selenium入门10 弹出框的处理 switch_to.alert
三种弹出框alert(一个按钮),confirm(两个确认,取消),prompt(两个按钮+输入框). 切换到弹框: switch_to_alert() 新版的selenium用: brows ...
- 【BZOJ3622】已经没有什么好害怕的了(动态规划+广义容斥)
点此看题面 大致题意: 有\(n\)个糖果和\(n\)个药片,各有自己的能量.将其两两配对,求糖果比药片能量大的组数恰好比药片比糖果能量大的组数多\(k\)组的方案数. 什么是广义容斥(二项式反演) ...
- Python实现接口测试中的常见四种Post请求数据
前情: 在日常的接口测试工作中,模拟接口请求通常有两种方法, 利用工具来模拟,比如fiddler,postman,poster,soapUI等 利用代码来模拟,使用到一些网络模块,比如HttpClie ...
- Breaking Biscuits(模板题-求凸边形的宽)
Breaking Biscuits 时间限制: 1 Sec 内存限制: 128 MB Special Judge提交: 70 解决: 26[提交] [状态] [讨论版] [命题人:admin] ...
- Spring使用Setter依赖注入
一个简单的Spring例子来展示如何通过setter方法注入依赖项,最常用DI方法注入bean. 1. IOutputGenerator 接口和实现类 package faj.test.javad ...
- Java中阻塞队列的使用
http://blog.csdn.net/qq_35101189/article/details/56008342 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如 ...