Handler简单介绍

Handler简单介绍

目 录
1 Handler的基本介绍…
1.1什么是Handler…
1.2为什么要用Handler…
1.3Handler的四个组成部分…
1.3.1 Message…
1.3.2 Handler…
1.3.3 MessageQueue…
1.3.4 Looper…
1.4 Handler工作流程…
1.5 Handler的用法…
1.5.1 传递Message…
1.5.2 传递Runnable对象…
1.5.3 传递Callback…
2 Handler常见问题…
2.1 Thread、Looper和Handler的数量关系…
2.2 Looper轮询消息机制…
2.3 Handler实现发送延迟消息的方法…
2.4 消息队列解决延迟消息的堵塞问题方法…
2.5 Looper.looper()不会阻塞主线程原因…
2.6主线程的死循环一直运行不会消耗大量CPU资源…

1 Handler的基本介绍

1.1 什么是Handler

Handler是Android提供的一套更新UI的机制,也是一套异步消息处理机制。我们可以发送消息也可以接受消息。。当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。

1.2 为什么要用Handler

子线程更新UI是不安全的,多线程去更新UI,而且没有加锁的话,会出现多线程并发问题,更新界面混乱。如果对更新UI的操作都

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中,`watch`是一个用于监听数据变化的特性。通过`watch`,我们可以在数据发生变化时执行相应的操作。 `watch`有两种使用方式:一种是监听某个具体的数据变化,另一种是监听整个对象的变化。 1. 监听具体数据变化: 我们可以通过在Vue实例中使用`watch`属性来定义一个或多个`watcher`,并指定要监听的数据和对应的回调函数。当指定的数据发生变化时,Vue会自动调用相应的回调函数。 例如: ```javascriptdata() { return { message: 'Hello', }; }, watch: { message(newVal, oldVal) { console.log('message发生了变化:', newVal, oldVal); }, }, ``` 在上述代码中,我们创建了一个名为`message`的数据,并在`watch`中监听了该数据的变化。当`message`发生变化时,回调函数会被触发,并打印出新值和旧值。 2. 监听整个对象的变化: 除了监听具体数据的变化外,我们还可以使用`deep`属性来监听整个对象的变化。当对象内部的任何属性发生变化时,都会触发回调函数。 例如: ```javascriptdata() { return { userInfo: { name: 'Alice', age:20, }, }; }, watch: { userInfo: { handler(newVal, oldVal) { console.log('userInfo发生了变化:', newVal, oldVal); }, deep: true, }, }, ``` 在上述代码中,我们创建了一个名为`userInfo`的对象,并在`watch`中监听了该对象的变化。通过设置`deep: true`,当`userInfo`内部的`name`或`age`属性发生变化时,回调函数会被触发。 使用`watch`可以灵活地对数据变化作出响应,执行一些额外的逻辑操作,例如发送请求、更新其他数据等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值