iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android编程中Handler原理及用法实例分析
  • 377
分享到

Android编程中Handler原理及用法实例分析

handlerAndroid 2022-06-06 09:06:44 377人浏览 独家记忆
摘要

本文实例讲述了Android编程中Handler用法。分享给大家供大家参考,具体如下: 在Android的UI开发中,我们经常会使用Handler来控制主UI程序的界面变化。有

本文实例讲述了Android编程中Handler用法。分享给大家供大家参考,具体如下:

在Android的UI开发中,我们经常会使用Handler来控制主UI程序的界面变化。有关Handler的作用,我们总结为:与其他线程协同工作,接收其他线程的消息并通过接收到的消息更新主UI线程的内容

我们假设在一个UI界面上面,有一个按钮,当点击这个按钮的时候,会进行网络连接,并把网络上的一个字符串拿下来显示到界面上的一个 TextView上面,这时就出现了一个问题,如果这个网络连接的延迟过大,可能是10秒钟甚至更长,那我们的界面将处于一直假死状态,而如果这段时间超 过5秒钟的话,程序会出现异常。

这时我们会想到使用线程来完成以上工作,即当按钮被按下的时候新开启一个线程来完成网络连接工作,并把得到的结果更新到UI上面。但是,这时候又会 出现另一个问题,在Android中,主线程是非线程安全的,也就是说UI的更新只能在本线程中完成,其他线程无法直接对主线程进行操作。

为了解决以上问题,Android设计了Handler机制,由Handler来负责与子线程进行通讯,从而让子线程与主线程之间建立起协作的桥梁,使Android的UI更新的问题得到完美的解决。接下来ATAAW.COM举例来诠释Handler的基本使用方法。

A、Handler的工作原理

一般情况下,在主线程中我们绑定了Handler,并在事件触发上面创建新的线程用于完成某些耗时的操作,当子线程中的工作完成之后,会对Handler发送一个完成的信号,而Handler接收到信号后,就进行主UI界面的更新操作。

B、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 = new MyHandler();

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:Android Handler消息派发机制源码分析Android使用Handler和Message更新UI深入理解Android中的Handler异步通信机制Android中Handler消息传递机制Android handler 详解(面试必问)浅谈Android应用的内存优化及Handler的内存泄漏问题实例讲解Android多线程应用开发中Handler的使用Android编程开发之seekBar采用handler消息处理操作的方法详解Android中Handler的内部实现原理详解Android中Handler的使用方法Android Handler 机制实现原理分析


--结束END--

本文标题: Android编程中Handler原理及用法实例分析

本文链接: https://www.lsjlt.com/news/25988.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android同步异步任务、多线程及Handler消息处理机制实例分析
    这篇“Android同步异步任务、多线程及Handler消息处理机制实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“A...
    99+
    2023-07-04
  • Vue中sync修饰符分析原理及用法示例
    目录不使用sync修饰符的代码示例使用sync修饰符的代码示例sync修饰符的原理前几天在看别人代码时,发现了sync修饰符的妙用,特记录其用法和原理如下。 不使用sync修饰符的代...
    99+
    2022-11-13
    Vue sync修饰符原理 Vue sync用法
  • Java中HashSet原理及常用方法的示例分析
    小编给大家分享一下Java中HashSet原理及常用方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一. HashSet概述HashSet是Java集...
    99+
    2023-06-02
  • 分析redis原理及实现方法
    小编给大家分享一下分析redis原理及实现方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!1 什么是redisredis是nosql(也是个巨大的map) 单线程,但是可处理1秒10w的并发...
    99+
    2024-04-02
  • Ajax原理及使用的示例分析
    这篇文章给大家分享的是有关Ajax原理及使用的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   Ajax原理   AJAX即“Asynchronous Javasc...
    99+
    2024-04-02
  • Android TextView跑马灯实现原理及方法实例
    目录前言探秘TextView#onDrawMarquee小结应用MarqueeTextViewMarquee效果总结前言 自定义View实现的跑马灯一直没有实现类似 Android ...
    99+
    2024-04-02
  • 容器在编程中的优缺点分析及应用实例。
    容器在编程中的优缺点分析及应用实例 随着计算机科学的不断发展,编程语言和技术也在不断进步。在编写程序的过程中,容器已经成为了一个非常重要的概念。容器是一种轻量级的虚拟化技术,它可以在同一台物理机器上运行多个应用程序,并且在运行时保证应用程序...
    99+
    2023-06-01
    leetcode 编程算法 容器
  • 链表原理及java实现的示例分析
    这篇文章主要介绍了链表原理及java实现的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:单向链表基本介绍链表是一种数据结构,和数组同级。比如,Java中我们使用的...
    99+
    2023-05-30
    java
  • Linux NFS机制工作原理及实例分析
    Linux NFS机制工作原理及实例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。NFS是network file system (网络文件系统)的缩写,其主要作用就是通过...
    99+
    2023-06-28
  • Android studio中JNI编程实例并生成so库的示例分析
    这篇文章主要为大家展示了“Android studio中JNI编程实例并生成so库的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android studio中JNI编程实例并生成so库...
    99+
    2023-05-30
    android studio
  • 汉明码编码原理及校验方法分析
    目录1.奇偶校验2.汉明码汉明码怎么分组:校验码的位置:从发送者的角度,我该怎么发用上汉明码的数据呢:我是接收者,我收到了一串汉明码,怎样用汉明码的性质来检错呢:1.奇偶校验 我们约...
    99+
    2024-04-02
  • Java Base64编码方法详解及实例分析
    Base64.encodeBase64String方法是一个Java语言中用于Base64编码的方法。它可以将二进制数据转换为Base64编码的字符串形式。在本文中,我们将详细解释这个方法的使用,提供完整的实例和代码,并分析运行结果。最后,...
    99+
    2023-09-04
    java 开发语言
  • Spring AOP底层原理及代理模式实例分析
    这篇文章主要介绍“Spring AOP底层原理及代理模式实例分析”,在日常操作中,相信很多人在Spring AOP底层原理及代理模式实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-06-30
  • java编程Reference核心原理示例源码分析
    带着问题,看源码针对性会更强一点、印象会更深刻、并且效果也会更好。所以我先卖个关子,提两个问题(没准下次跳槽时就被问到)。 我们可以用ByteBuffer的allocateDirec...
    99+
    2024-04-02
  • mysql累积聚合原理与用法实例分析
    本文实例讲述了mysql累积聚合原理与用法。分享给大家供大家参考,具体如下: 累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决...
    99+
    2024-04-02
  • vue中的.sync修饰符用法及原理分析
    目录.sync修饰符用法及原理例如.sync修饰符的用法总结需求描述解决方案.sync修饰符用法及原理 vue中我们经常会用v-bind(缩写为:)给子组件传入参数。 或者我们会给子...
    99+
    2024-04-02
  • Spring2.5.6中面向切面编程及实现的示例分析
    这期内容当中小编将会给大家带来有关Spring2.5.6中面向切面编程及实现的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补面向对象编...
    99+
    2023-06-17
  • JavaScript闭包原理及作用的示例分析
    小编给大家分享一下JavaScript闭包原理及作用的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!简介说明本文介绍JavaScript的闭包的作用、用途及其原理。闭包的定义闭包是指内部函数总是可以访问其所在的外部...
    99+
    2023-06-22
  • Android编程中自定义组件的示例分析
    这篇文章主要介绍了Android编程中自定义组件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Android是什么Android是一种基于Linux内核的自由及开放...
    99+
    2023-05-31
    android
  • Android应用中apk反编译的示例分析
    这篇文章将为大家详细讲解有关Android应用中apk反编译的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概述这里是Mac环境,如果是window环境的同学,在环境搭建和工具上可以选择Windo...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作