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主 ...
随机推荐
- android 学习之ViewDragHelper
ViewDragHelper是用来移动ViewGroup中子View的,之前写View的移动都是通过scrollTo来实现,但是它移动的是VIew中的内容,ViewGroup中的所有的子View都会移 ...
- 2009中国IT界名人
丁 磊:网易创始人 李 想:泡泡网 辛佳雨:代码中国创始人 张朝阳:搜狐创业者之一 王志东:新浪网创业者之一 陈天桥:盛大网络创始人,中国互动娱乐业第一人 周鸿 ...
- Spark Streaming与Kafka集成
Spark Streaming与Kafka集成 1.介绍 kafka是一个发布订阅消息系统,具有分布式.分区化.多副本提交日志特点.kafka项目在0.8和0.10之间引入了一种新型消费者API,注意 ...
- [Linux发行版] 常见Linux系统下载(转)
本专题页汇总最受欢迎的Linux发行版基本介绍和下载地址,如果您是一位刚接触Linux的新手,这里的介绍可能对您有所帮助,如果您是以为Linux使用前辈,也可以在评论处留下您宝贵意见和经验,以便让更多 ...
- 用dynamic的方式来转换Json对象
来自这里:http://stackoverflow.com/questions/3142495/deserialize-json-into-c-sharp-dynamic-object If you ...
- 第35章 WWDG—窗口看门狗—零死角玩转STM32-F429系列
第35章 WWDG—窗口看门狗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- Python的socket编程
我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要 ...
- ImportError : cannot import name main
当我们有时候安装不成功插件或者其他模块时候,会有pip报错hu@hu-VirtualBox:~/下载/MySQL-python-1.2.4b4$ pip install pymysqlTracebac ...
- Error:linker command failed with exit code 1 (use -v to see invocation) - iOS
今天在操作 CoreData 时,创建完 Create NSManagedObject Subclass... 后,工程中会自动生成四个文件,如下图所示: 此时此刻便以工程,激动人心的时刻来临了 ...
- iOS 多线程 之 GCD(大中枢派发)(二)
本文接着上一篇讲.主要讲:dispatch_source. dispatch_source主要用户监听事件,可以监听如下事件 DISPATCH_SOURCE_TYPE_DATA_ADD DISPATC ...