安卓基础学习之handler

文章目录

    • 安卓基础学习之handler
  • 前言
  • 一、Handler
  • 二、handlder的使用流程讲解
    • 1.简单的示例
    • 2.handler的一些方法
  • 总结

前言

记录安卓开发的每一天,这个说明一下,写的博客虽然访问量没多少吧,但也希望找些朋友一块学习,为此,我创建了一个***学习群***:***874308732***有兴趣的小伙伴可以加一下哈,我们一块学习,一起交流。


一、Handler

handler是一个用来处理异步消息的小工具,我们都知道在AS中是不允许在子线程中对UI来进行操作的,但是与用户交互的界面又是不断在变化的, 这个时候呢就需要引进一些机制来处理,其中handler就是一个最基础的处理机制

二、handlder的使用流程讲解

 handler的整个运行框架,它有四个部分组成,首先是handler部分,它在子线程中将Message发送到消息队列中,也就是MessageQueue中 然后这时有一个Looper,就像一个抽水机,他不断地从消息队列中抽出消息并传给handler,让他使用回调方法handlerMessage来处理消息。

1.简单的示例

     * 1.首先在主线程中我们需要一个handler对象,并重写这个类含有的handlerMessage方法这个方法呢,就是用来处理异步消息的* 2.当我们在子线程中需要进行UI操作时,我们创建一个message对象,并调用它的.what方法将消息赋给这个对象,* 3.然后调用handler.sendMessage方法将这个对象发送会主线程* 4.接着在主线程重写的方法中获取对象,并通过标识符来判断具体需要进行的操作,由于这时已经回到主线程了,就可以对UI进行操作了

代码如下(示例):

 //这里简单都在主线程中演示一下,用一个TextView吧TextView textView = findViewById(R.id.textview);Button button =findViewById(R.id.button);Handler handler = new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(@NonNull Message message) {switch (message.what){case 1001:textView.setText("小虎");break;}return true;}});button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {new Thread(new Runnable() {@Overridepublic void run() {Message message = new Message();message.what = 1001;handler.sendMessage(message);}}).start();}});

2.handler的一些方法

handler还有很多方法,比如说
.what
.obj
.arg1
.arg2
这些可以用来携带信息或者对象上下文都是可以的,只不过这个handler真的用起来是非常不方便的,所以我们后面学了一个AsyncTask,后面也简单记录一下。


总结

今天还特地搜索了一下这个进程和线程,也简单记录一下,所谓进程可以理解为一个正在运行的应用,.exe文件,线程是摸个应用中多个不同的任务分配这样,一个进程可能包含多个线程,简单看了一眼,浅浅记录一下,后面再看吧。

安卓基础学习之handler相关推荐

  1. 安卓基础学习(从头开始,持续更新)

    标题Android Studio学习 1.活动的基本用法 1.新建一个活动,会有主函数和其相对布局. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2IFw9Zb-1 ...

  2. 安卓基础学习 Day18|按键事件+手势操作(图片的放大、缩小、切换)

    目录 一.按键事件的概念 二.案例演示 1.提出要求 2.主布局资源文件 3.主界面 一.触摸事件的概述 触摸分类 触摸动作 触摸监听器 触摸方法 触点个数与坐标 二.单点触摸 案例:移动米老鼠 提出 ...

  3. 安卓基础学习 Day19|安卓高级控件------下拉列表

    目录 下拉列表(spinner) 下拉列表(数组适配器.列表框形式) 1.提出要求 2.主布局资源文件 3.主界面 4.条目布局文件 下拉列表(数组适配器.对话框形式) 1.提出要求 2.主布局资源文 ...

  4. 安卓基础学习 Day 6|常用控件---列表视图+古诗查看

    目录 列表视图4要素 四种是适配器 古诗查看 古诗列表 1.主布局资源文件 2.诗歌列表项模板 3.字符串资源文件 4.主界面代码 5.启动应用.查看效果 古诗内容模板 1.内容模板的主布局资源文件 ...

  5. 安卓基础学习 Day22|按钮的禁用与恢复

    文章目录 目标效果 主布局资源文件 主界面 时间`DateUtil`文件 按钮通常的两种状态 不可用状态:按钮不允许点击,即使点击了也没反应,同时按钮文字为灰色 可用状态:按钮允许点击,点击按钮会触发 ...

  6. 安卓基础学习 Day 21|Fragment(碎片)

    目录 Fragment(碎片) Fragment 静态注册 碎片文件 碎片布局文件 碎片主界面 主界面 实现效果 Fragment声明周期 Fragment动态注册 标签栏 显示界面 图片和显示的文字 ...

  7. 学 android需要什么基础,学习安卓开发需要什么基础?

    学习程序开发一般都需要懂一些一定的C语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程.当然学习安卓程序开发除了懂C语言之外,还需要掌握一定的Java基础知识.Linux基础知识 ...

  8. 安卓逆向学习笔记:native层开发、分析和调试基础

    安卓逆向学习笔记:native层开发.分析和调试基础 本笔记主要是自己看,所以如果有看不懂的地方也请多多包涵,这一篇的笔记主要是<Android应用安全防护和逆向分析>的部分内容. 一 A ...

  9. 如何零基础学习安卓开发?

    安卓手机全球市场份额已经接近85%,成为了无处不在无所不能覆盖面最广的手机操作系统,学习安卓开发一直都很热门,想学习安卓却有点无从下手,本篇教程就是一个从零基础开始学安卓的指导,希望对想学习安卓的新人 ...

最新文章

  1. 慕课python课后作业_python基础1习题练习
  2. 黑龙江专科大学计算机专业,黑龙江10大最好的专科学校,有你心仪的学校吗?...
  3. window系统 telnet报错:‘telnet‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  4. 员工工号怎么编码_华为员工感慨:工号就留在这了,感谢公司给我自己写墓志铭的机会...
  5. code blocks代码性能分析_记一次Python Web接口优化,性能提升25倍!
  6. Flurry调查报告:图片和视频应用增长速度最快
  7. element布局容器大小_Flutter完整开发实战详解(十六、详解自定义布局实战)
  8. 兰州中考计算机考试,宜昌、兰州发布中考新政新消息:增加口语考试,采取人机对话形式...
  9. 如何解决sqlserver 2005 备份的时候无法选择除系统盘外的其他盘符?
  10. python三次方函数_python函数基础------第三次作业讲解(二)
  11. 表锁 行锁 页锁 是什么区别
  12. 手把手教你在Linux环境下安装Python3
  13. Win10 新机,这些必装软件你拥有了吗?
  14. MyBatis学习——第五篇(手动分页和pagehelper分页实现)
  15. 如何成为数据分析师?数据分析师的职业路线是什么样的?
  16. 查看电脑重启日志_win10中查看开关机时间及查看admin的RID的方法
  17. Creator仿超级玛丽小游戏源码分享
  18. matlab 相机焦距,世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真...
  19. 06年注册安全工程师试题
  20. 百度文库会员什么时候便宜

热门文章

  1. 银湖网更改手机号那极致糟糕的体验
  2. 简单谱子C语言程序,写了一段超级简单的 G调的简谱转换为C调的程序
  3. SSL证书信任问题处理,两种解决方案
  4. Eclipse 国内镜像下载
  5. 商业银行资产管理理论之:商业贷款理论、转移理论和预期收入理论
  6. (剖面图全网唯一教程)如何利用EDEM制作剖面图 (自己琢磨出)
  7. 【华为OD机试真题 python】最大平分数组【2022 Q4 | 200分】
  8. Flutter,SharedPreferences的同步处理,如Android原生般的
  9. 「高频面试题」浏览器从输入url到页面展示中间发生了什么
  10. HFSS常见绘图技巧