handler的使用(Android中Handler的主要作用是什么通俗点,初学)

:暂无数据 2026-10-13 07:50:07 :0

handler的使用(Android中Handler的主要作用是什么通俗点,初学)

各位老铁们,大家好,今天由我来为大家分享handler的使用,以及Android中Handler的主要作用是什么通俗点,初学的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

Android中Handler的主要作用是什么通俗点,初学

Handler的使用主要是android中无法在主线程(即UI线程)中访问网络、无法在子线程中访问UI线程元素。
一般是在子线程中访问网络,然后使用Handler发送message通知主线程处理UI更新操作

Android用handler在线程间传值

想要让Activity收到消息,就要使用它自己的handler。
你可以在activity中声明一个静态的handler,在onCreat方法中初始化。
然后再其他线程直接调用。
还有就是,你应该把activity的handler赋值给Thread的
不知道为什么百度抽了,没有办法追问,关于你的程序,我试调一下,消息传递没有问题,吧前面的网页访问注释掉直接向Activity发送消息,已经收到,请检查你代码的其他部分

Android 为什么使用Handler

在Android的UI开发中,我们经常会使用Handler来控制主UI程序的界面变化。有关Handler的作用,我们总结为:与其他线程协同工作,接收其他线程的消息并通过接收到的消息更新主UI线程的内容。
我们假设在一个UI界面上面,有一个按钮,当点击这个按钮的时候,会进行网络连接,并把网络上的一个字符串拿下来显示到界面上的一个 TextView上面,这时就出现了一个问题,如果这个网络连接的延迟过大,可能是10秒钟甚至更长,那我们的界面将处于一直假死状态,而如果这段时间超 过5秒钟的话,程序会出现异常。
这时我们会想到使用线程来完成以上工作,即当按钮被按下的时候新开启一个线程来完成网络连接工作,并把得到的结果更新到UI上面。但是,这时候又会 出现另一个问题,在Android中,主线程是非线程安全的,也就是说UI的更新只能在本线程中完成,其他线程无法直接对主线程进行操作。
为了解决以上问题,Android设计了Handler机制,由Handler来负责与子线程进行通讯,从而让子线程与主线程之间建立起协作的桥梁,使Android的UI更新的问题得到完美的解决。接下来举例来诠释Handler的基本使用方法。
Handler的工作原理
一般情况下,在主线程中我们绑定了Handler,并在事件触发上面创建新的线程用于完成某些耗时的操作,当子线程中的工作完成之后,会对Handler发送一个完成的信号,而Handler接收到信号后,就进行主UI界面的更新操作。
2
Handler与子线程协作实例
1、创建Handler实现类,在主UI所在类中的内部类
class MyHandler extends Handler {
public MyHandler() { }
public MyHandler(Looper L) {
super(L);
}
// 重写handleMessage方法,接受数据并更新UI
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//此处根据msg内容进行UI操作
}
}
2、子线程的实现
class MyThread implements Runnable {
public void run() {
Message msg = new Message();
Bundle b = new Bundle();
b.putString("cmd", "update");
msg.setData(b);
MainActivity.this.myHandler.sendMessage(msg);
//通知Handler更新UI
}
}
通过以上的两个实现,我们只需要在MainActivity中声明MyHandler实例对象就可以完成线程之间的通讯和界面的更新操作。
MyHandler myHandler = newMyHandler();

为什么使用Handler需要Looper

因为在Handler的构造函数里面,mLooper=Looper.myLooper();如果mLooper==null的话,就会抛出“can’t create handler inside thread that has not called Looper.prepare()”异常。为什么需要Looper呢?因为Looper的作用是不断的从MessageQueue中通过queue.next()方法取出消息,然后交给Handler处理,而Looper在构造函数中new了一个MessageQueue,并保存了当前线程对象,如果不构造Looper的话,就不会有MessageQueue,所以后面的取出消息就谈不上了,所以使用Handler需要Looper。

以上就是我们为大家找到的有关“handler的使用(Android中Handler的主要作用是什么通俗点,初学)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

handler的使用(Android中Handler的主要作用是什么通俗点,初学)

本文编辑:admin

本文相关文章:


buffer java(Java SE用NIO(New IO)里面的Buffer类有什么好处适合在什么场合使用)

buffer java(Java SE用NIO(New IO)里面的Buffer类有什么好处适合在什么场合使用)

大家好,今天小编来为大家解答以下的问题,关于buffer java,Java SE用NIO(New IO)里面的Buffer类有什么好处适合在什么场合使用这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 12:40

nodename(QTA nodename nor servname provided, or not known问题解决)

nodename(QTA nodename nor servname provided, or not known问题解决)

本篇文章给大家谈谈nodename,以及QTA nodename nor servname provided, or not known问题解决对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮

2026年10月5日 11:50

推荐8款im即时通讯开源的(flutter即时通讯sdk哪家做得比较好)

推荐8款im即时通讯开源的(flutter即时通讯sdk哪家做得比较好)

“推荐8款im即时通讯开源的”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看推荐8款im即时通讯开源的(flutter即时通讯sdk哪家做得比较好)!

2026年10月4日 11:00

repository注解与mapper(SpringBoot中的Mapper注解和Repository注解)

repository注解与mapper(SpringBoot中的Mapper注解和Repository注解)

“repository注解与mapper”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看repository注解与mapper(SpringBoot中的Mapper注解和Repository注解)!

2026年9月30日 02:40

inner join用法on后面多个条件(inner join的条件不可以用不等于吗)

inner join用法on后面多个条件(inner join的条件不可以用不等于吗)

本篇文章给大家谈谈inner join用法on后面多个条件,以及inner join的条件不可以用不等于吗对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本

2026年9月26日 16:50

html网页设计特效(Dreamweaver网页制作如何在设计界面制作鼠标特效)

html网页设计特效(Dreamweaver网页制作如何在设计界面制作鼠标特效)

各位老铁们好,相信很多人对html网页设计特效都不是特别的了解,因此呢,今天就来为大家分享下关于html网页设计特效以及Dreamweaver网页制作如何在设计界面制作鼠标特效的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看

2026年9月23日 22:30

oracle如何登录(如何以管理员的身份登录oracle 与SqlServer)

oracle如何登录(如何以管理员的身份登录oracle 与SqlServer)

这篇文章给大家聊聊关于oracle如何登录,以及如何以管理员的身份登录oracle 与SqlServer对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月10日 11:00

period的用法(的用法有没人告诉小弟一下period这个单词怎么用)

period的用法(的用法有没人告诉小弟一下period这个单词怎么用)

其实period的用法的问题并不复杂,但是又很多的朋友都不太了解的用法有没人告诉小弟一下period这个单词怎么用,因此呢,今天小编就来为大家分享period的用法的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月8日 18:20

perseverance的意思(preseverance的意思)

perseverance的意思(preseverance的意思)

大家好,如果您还对perseverance的意思不太了解,没有关系,今天就由本站为大家分享perseverance的意思的知识,包括preseverance的意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 18:30

请简要说明servlet的工作原理(servlet是什么及工作原理)

请简要说明servlet的工作原理(servlet是什么及工作原理)

其实请简要说明servlet的工作原理的问题并不复杂,但是又很多的朋友都不太了解servlet是什么及工作原理,因此呢,今天小编就来为大家分享请简要说明servlet的工作原理的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析

2026年9月6日 07:10

更多文章:


对勾函数四种图像(对勾函数是怎样的解析式,性质)

对勾函数四种图像(对勾函数是怎样的解析式,性质)

本篇文章给大家谈谈对勾函数四种图像,以及对勾函数是怎样的解析式,性质对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月13日 08:00

handler的使用(Android中Handler的主要作用是什么通俗点,初学)

handler的使用(Android中Handler的主要作用是什么通俗点,初学)

各位老铁们,大家好,今天由我来为大家分享handler的使用,以及Android中Handler的主要作用是什么通俗点,初学的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,

2026年10月13日 07:50

c语言函数递归数列(c语言编程:用递归方法求数列的和)

c语言函数递归数列(c语言编程:用递归方法求数列的和)

这篇文章给大家聊聊关于c语言函数递归数列,以及c语言编程:用递归方法求数列的和对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月13日 05:40

python list方法(python中List添加、删除元素的几种方法)

python list方法(python中List添加、删除元素的几种方法)

其实python list方法的问题并不复杂,但是又很多的朋友都不太了解python中List添加、删除元素的几种方法,因此呢,今天小编就来为大家分享python list方法的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析

2026年10月13日 04:40

sql触发器的主要作用是什么(sql server 触发器有什么用)

sql触发器的主要作用是什么(sql server 触发器有什么用)

这篇文章给大家聊聊关于sql触发器的主要作用是什么,以及sql server 触发器有什么用对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月13日 03:30

java培训机构安排就业吗(java课程培训机构分享计算机专业毕业学Java好就业吗)

java培训机构安排就业吗(java课程培训机构分享计算机专业毕业学Java好就业吗)

大家好,关于java培训机构安排就业吗很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java课程培训机构分享计算机专业毕业学Java好就业吗的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注

2026年10月13日 01:50

apache服务器的配置(在apache的配置文件中,什么用于加载文件)

apache服务器的配置(在apache的配置文件中,什么用于加载文件)

大家好,如果您还对apache服务器的配置不太了解,没有关系,今天就由本站为大家分享apache服务器的配置的知识,包括在apache的配置文件中,什么用于加载文件的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月13日 00:10

docker zookeeper(Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager)

docker zookeeper(Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager)

各位老铁们,大家好,今天由我来为大家分享docker zookeeper,以及Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,

2026年10月12日 23:40

链接下载视频(怎样把微信里的链接视频下载到手机上)

链接下载视频(怎样把微信里的链接视频下载到手机上)

各位老铁们,大家好,今天由我来为大家分享链接下载视频,以及怎样把微信里的链接视频下载到手机上的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月12日 21:50

linuxfind目录名(linux find 怎样取得文件名呢)

linuxfind目录名(linux find 怎样取得文件名呢)

本篇文章给大家谈谈linuxfind目录名,以及linux find 怎样取得文件名呢对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月12日 21:00

最近更新

新乡环保网站建设,哪家公司靠谱?
2026-10-13 08:59:20 浏览:0
文山学校网站建设招标要求有哪些?
2026-10-13 08:59:19 浏览:0
热门文章

sql server2008下载地址(如何下载SQL Server 2008 R2 SP2免费版)
2026-10-05 05:30:29 浏览:6
thinkpadx100eu盘启动(thinkpad x100e U盘启动 支持的写入方式是什么)
2026-09-01 14:20:01 浏览:6
标签列表