安卓事件处理、异步处理
创始人
2025-05-30 05:04:12
0

安卓事件处理、异步处理

1.基于监听的事件处理

1.1学习目标

学习目标

1.2基于监听的事件处理

1.概念

button按钮产生点击事件,事件监听器监听和处理事件

  • 事件源:哪个组件产生事件,按钮是最常用的
  • 事件:要处理的事情
  • 事件处理:处理事件源的事件

2.实例1:按钮的事件监听

  • 事件源就是button
  • 实现的方式好几种

 e416106c6a37001b52a859d9bc5a1c91.png

事件的处理的方式有好多种。

1.3基于回调的事件处理

1.常见的基于回调的事件处理

2.实例:

可以自己重写一些控件,然后采用自己的方式去重写对应的方法。从而设置成自己的回调的事件处理函数。可以在activity中进行编写,但是设置的时候需要知道是哪个控件在起什么样的zuo'yong

  • 设置自定义的button
  • 注意返回的值,

  • 加载自定义的button

 

2.基于AsyncTask的事件处理

2.1引入原因

1.引入的原因

  • 避免UI主线程被卡断
  • 将一些耗时时间比较长的事件放到异步操作中进行处理就可以了
  • 比如请求响应时间比较长等事件

2.2使用步骤

  • 所有比较耗时放到doInBackground

160380ada1007238d68dcc691ad60ccc.png

2.3加载图片的案例

1.布局文件


2.activity文件

自定义了一个类ImageDownTask,用于执行异步的方法。执行一些比较耗时的工作。

传入execute用于执行耗时长的。

/*
* 异步的方式下载网页中的图片的信息
* */
public class getImg extends AppCompatActivity {ImageView img;ProgressBar pro;private String url="https://img2.baidu.com/it/u=355673106,1614830790&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_get_img);img=findViewById(R.id.img);pro=findViewById(R.id.pro);//实例化异步的任务ImageDownTask task=new ImageDownTask();//执行异步任务。调用这个方法才能去执行对应的耗时的工作task.execute(url);}//执行异步任务的类
/*
*String 表示传递的参数类型,也就是我们的要请求的url的地址的信息
*Void 表示后台任务完成的进度值的类型
* Bitmap是要返回的结果的信息,可以自己进行指定
* */class ImageDownTask extends AsyncTask{/*doInBackground方法执行的都是一些比较耗时的工作的,一般是请求相关的网络资源的信息* params传入的参数的数组集合信息* */@Overrideprotected Bitmap doInBackground(String... params) {//要返回的结果的图片的信息Bitmap bitmap=null;//获取URL地址信息String url=params[0];//网路连接对象URLConnection conn=null;InputStream is;//获取输入流的信息try {//获取连接对象的信息conn=new URL(url).openConnection();//获取输入流的信息is=conn.getInputStream();//将输入流放到输入缓冲区中BufferedInputStream buffer=new BufferedInputStream(is);//解析输入流的信息bitmap= BitmapFactory.decodeStream(buffer);//关闭流信息buffer.close();is.close();}catch (Exception e){System.out.println(e);}//返回给后面的调用的方法return bitmap;}//显示等待进度条的信息@Overrideprotected void onPreExecute() {pro.setVisibility(View.VISIBLE);}//下载完毕,隐藏进度条的信息/** onPostExecute 在doInBackground方法执行完毕之后进行执行,自动会自动进行调用的。* 接收返回值的,主要的作用就是负责更新UI线程等的信息* */@Overrideprotected void onPostExecute(Bitmap bitmap) {pro.setVisibility(View.GONE);//设置要显示的图片的信息img.setImageBitmap(bitmap);}}
}

3.效果图

 很短的加载。几乎看不出来。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...