handler的理解笔记

应用程序启动时,Android首先会开启一个主线程,如果此时需要一个耗时的操作,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象,这个时候我们需要把这些耗时的操作,放在一个子线程中。这个时候,Handler就出现了。,来解决这个复杂的问题 ,由于Handler运行在主线程中(UI线程中)。具体使用时,查看他的用法。

时间: 2024-09-28 19:56:25

handler的理解笔记的相关文章

Memcached理解笔记4---应对高并发攻击

近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最好成绩,1秒钟可以并发6次,赶在Database入库前,Cache进行Missing Loading前,强占这其中十几毫秒的时间,进行恶意攻击. 相关链接: Memcached笔记——(一)安装&常规错误&监控Memcached笔记——(二)XMemcached&Spring集成 Memcached笔记——(三)Memcached使用总结  Memcached

网站广告模版理解笔记

电子商务网站的,页面上往往或有很多活动的广告需要频繁的替换,还有关于网站的说明的文章,这些不是经常变动的,还有一些是专区的活动页面,上面放的都是活动的商品. 简单的设计思路: 1.建立一个模版表template,可以根据模版生成html 结构:id.模版名称.状态(有效和无效).模版内容.类型(html和vm) 2.建立一个模版实例表templateInstence,用来存放生成的html的信息 结构:id.templateId.html文件名称.html文件位置 3.建立一个模版实例商品表(非

Memcached理解笔记3---Memcached使用总结

为了将N个前端数据同步,通过Memcached完成数据打通,但带来了一些新问题: 使用iBatis整合了Memcached,iBatis针对每台server生成了唯一标识,导致同一份数据sql会产生不同的key,造成重复缓存.——通过重写iBatis部分原码,终止了唯一标识的生成,同一个SQL产生同一个Key,同时对生成key做hash,控制长度,使得数据统一在Memcached. 为了迎合iBatis的架构,通过CacheModel模式,对缓存数据分组管理.最初通过Map实现CacheMode

关于Handler的理解,子线程不能更新UI的纠正和回调的思考

开发Android这么久了,总会听到有人说:主线程不能访问网络,子线程不能更新UI.Android的主线程的确不能长时间阻塞,但是子线程为什么不能更新UI呢?今天把这些东西整理,顺便在子线程更新UI. 首先写了一个handler在子线程更新主线程UI,在子线程做了一个耗时操作:从网络下载了一个图片并利用handler发送到handleMessage()的回调中,并更新到主线程的bitmap.图片显示成功,没有问题.接下来在子线程中更新onCreate()中实例化的textview,报错: and

不理解笔记

# 不明白 # def print_nums(x): # for i in range(x): # print(i) # return # print_nums(10) # ------------------------ # rest=4+0.rest=4+1.rest=4+2.rest=4+3 # def func(x): # res = 0 # for i in range(x): # res += i # return res # # print(func(4)) #不输出字符长度 #

initWithFrame 与 initWithCoder 、awakeFromNib 的方法理解笔记

有时候,知道initWithFrame方法如何用,但是么有弄明白initWithFrame方法到底是什么? 那就通过查资料弄明白. 1. initWithFrame方法是什么? initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸). 当然,其他UI对象,也有initWithFrame方法,但是,我们以UIView为例,来搞清楚initWithFrame方法. 2.什么时候用initWithFrame方法? 简单的说,我们用编程方式申明,创建UIView对

Android中关于Handler Looper理解

在Android中每个应用的UI线程是被保护的,不能在UI线程中进行耗时的操作,其他的子线程也不能直接进行UI操作. 为了达到这个目的Android设计了handler Looper这个系统框架. 首先讲解在主线程中使用Handler时源码跟踪过程. 正常在activity的oncreate函数中定义个handler,这种情况下就是默认的主线程的handler,并去复写该类的handleMessage()函数. private final Handler mMessageHandler = ne

关于Handler的学习笔记

1,Handler机制和原理? Handler是一个消息分发对象,先进先出.当Hanlder发送消息时,首先进入消息队列,通过Looper对消息队列进来轮询,处理未处理的消息,并发给对应Handler进行处理.消息的发送和接收不是同步的. 2,什么时候用Handler? 子线程刷新UI界面,线程间通信,一些如网络等耗时操作. 3,Handler特点: 1,传递Message对象,通过sendMessage(Message msg)方法: 2,传递Runnable对象,通过post方法:

bundle的理解笔记

Bundle是一个键值对这样一个东西.就是一个string类型的东西,对应任何类型的东西.就是用来存值的. 这里可以看到他的作用 public void onClick(View v) { String info = etName.getText().toString(); Bundle bundle = new Bundle(); //保存输入的信息 bundle.putString("name", info); Intent intent=new Intent(BundleDemo