Java中CallBack的理解

Android多线程开发之Callback 多线程中的返回Callback---回调 interface 阅读详情
 CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了。"回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)是非常必要的。

  那么什么是回调函数呢?我认为,回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机。这里有两点需要注意:第一点,我们写回调函数不是给自己调用的,而是准备给系统在将来某一时刻调用的;第二点,我们应该知道系统在什么情形下会调用我们写的回调函数。

  这里举个现实生活中"回调函数"的例子来帮助大家更好的理解。我们平时考试答题的第一件事是干嘛?没错,是写上学号和姓名。这里注意了,我们填写学号和姓名不是给自己看的(即该方法不是给自己调用的),而是给老师登记分数时看的(预留给系统将来调用),这其实就是一个回调的应用。

  下面再来看一下Android中应用到"回调"的场景。

  场景一:

Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(
new
Button.OnClickListener() {

//回调函数

@override
publicvoid
onClick(View v) {
buttonTextView.setText(
"按钮被点击了"
);
}
});

  上面的代码给按钮加了一个事件监听器,这其实就是"回调"最常见的应用场景之一。我们自己不会显示地去调用onClick方法。用户触发了该按钮的点击事件后,它会由Android系统来自动调用。

  场景二:

@Override
publicvoid
onCreate(Bundle saveInstanceState) {
super
.onCreate(saveInstanceState);
// You code...

}

@Override
publicvoid
onResume() {
super
.onResume();
// You code...

}

  上面的方法大家就更熟悉了,这是Android系统在Activity类中设置的回调函数,在Activity生命周期的不同阶段,Android系统会自动调用相应的方法(onCreate, onPause, onResume,onDestroy等等)

  以上是两个Android中用到"回调"的场景,他们的代码实现可能不同,但是思想上是相近的,都是"回调"思想的体现。下面,我们在Java中分别模拟这两个场景。

  首先模拟注册事件监听器。先写一个监听器接口

package com.listener;

/**

* 点击监听器接口
*
@author CodingMyWorld
*
*/

publicinterface MyOnClickListener {
publicvoid
onClick();
}

  然后写一个我们自己的Button类

package com.listener;

publicclass
MyButton {
private
MyOnClickListener listener;

/**

* 设置具体点击监听器
*
@param listener 点击监听器实现类
*/

publicvoid setOnClickListener(MyOnClickListener listener) {
this.listener =
listener;
}

/**

* 按钮被点击
*/
publicvoid doClick() {
listener.onClick();
}
}

  最后模拟Client端的注册监听器和触发点击操作。

package com.listener;

publicclass
Client {
publicstaticvoid
main(String[] args) {
MyButton button
=new
MyButton();
//注册监听器

button.setOnClickListener(new MyOnClickListener() {

@Override
publicvoid
onClick() {
System.out.println(
"按钮被点击了"
);

}

});
//模拟用户点击

button.doClick();
}
}

  以上就是"回调"思想在Java中事件监听的运用,我们再模拟第二个场景,"回调"在activity生命周期方法调用的体现。由于比较简单,我就不多做解释了,大家直接看代码。

package com.activity;

publicabstractclass
Activity {
protectedvoid
onCreate() {
System.out.println(
"创建准备~~~~~~~"
);
}

protectedvoid
onDestroy() {
System.out.println(
"销毁准备~~~~~~~~"
);
}
}
package com.activity;

publicclass ConcreteActivity extends
Activity {
@Override
protectedvoid
onCreate() {
super
.onCreate();
System.out.println(
"创建中!!!"
);
}

@Override
protectedvoid
onDestroy() {
super
.onDestroy();
System.out.println(
"销毁中!!!"
);
}
}
package com.activity;

publicclass
Client {
publicstaticvoid
main(String[] args) {
Activity activity
=new
ConcreteActivity();
activity.onCreate();
activity.onDestroy();
}
}

  对CallBack的理解。

Android中Callback的使用详解 通过定义Callback接口和实现回调方法,我们可以实现代码的解耦和模块化,提高代码的可维护性和可扩展性。在示例中,我们展示了如何在Android中使用Callback进行网络请求,并在请求完成后更新UI界面。通过创建Callback接口和实现回调方法,我们能够在请求成功或失败时执行相应的操作,保证UI更新和错误处理在主线程中进行。通过以上示例,我们可以看到Callback的使用方式。在实际开发中,我们可以根据具体需求和场景,自定义不同的Callback接口和回调方法,实现更加灵活和复杂的异步操作。 阅读详情

相关推荐

复用浏览器之跳过扫码登录

复用浏览器 1、通过命令启动浏览器:chrome --remote-debugging-port=9222(前提是退出所有的chrome浏览器) 2、启动浏览器之后,在地址栏输入127.0.01:9222,成功复用如下图所示:

qq_43911915的博客 2034

Android 一篇文章轻松搞懂什么是Callback回调

很多人刚接触Callback回调时应该是很懵的。 今天通过这篇文章,让你轻松了解什么是Callback回调。 回调:简单的来说,就是把你自己包含了电话、QQ、微信的通讯簿交给别人,别人就持有了你的通讯簿。当别人有你需要知道的事情的时候,通过相应的渠道电话、QQ或微信告诉你。这就是回调。 回调的步骤只需4步: 1.定义一个接口类,定义需要的方法。 2.声明一个接口类对象,提供一个设置类对象的方法。 ...

简雨山舍 3434

SIPVicious实战指南:从零开始掌握VoIP渗透测试(Kali Linux环境)

本文为SIPVicious实战指南,详细介绍了在Kali Linux环境下进行VoIP渗透测试的完整流程。从环境准备与工具安装开始,逐步讲解如何使用svmap扫描SIP服务器、svwar枚举PBX分机号,以及svcrack进行密码安全测试,并整合svreport生成报告。旨在帮助安全从业者从零开始,系统掌握这套经典开源工具,在授权范围内有效评估VoIP系统的安全性。

weixin_29327977的博客 539

android常用到的callback

学习目标: android中常用到的callback 学习中遇到的坑: 敲代码不要死磕,其实敲代码和做一家具或者是一个工具是一个道理。看过知道是什么。要理解每一个组成部分的作用才能模仿这弄。就像做一个凳子我们给他定凳子腿的时候我们必须知道他的腿是支撑的心理才踏实。才能慢慢学会做凳子,但有时候我们理解局限,就是不明白这个凳子腿干嘛用的,其实这是一个很大的心理障碍,很影响我们的学习进度,这个时候我们就会陷入一个牛角尖,忘了我们的真正目的是干嘛。(其实我们的目的是做凳子而不是研究凳子腿的受力支撑什么的哦这好像是

qq_43306376的博客 2404

基于 Go 的微信滑块验证码自动化:协议还原与图像算法深度解析

本文从协议层、算法层和工程优化三个维度,系统拆解了基于Go的微信滑块验证码自动化方案。在协议层,通过手写protobuf编码器和RSA加密复现了微信UUID生成机制;在算法层,采用图像匹配技术实现滑块缺口定位;在工程层面,构建了包含HTTP状态机和随机化设备指纹的完整验证流程。文章重点阐述了技术实现的形式化建模、算法选择依据和复杂度分析,为工程师和算法研究者提供了可验证的技术方案。核心代码结构包括UUID生成、滑块状态机和图像匹配算法等模块,通过分层设计实现了高效可靠的验证码自动化破解。

weixin_65409651的博客 1293

Kali Linux实战:5种局域网DoS攻击手法全解析(附防御方案)

本文以Kali Linux为平台,深入解析了局域网内五种典型的DoS攻击手法,包括TCP SYN Flood、ICMP Flood、MAC地址泛洪、DHCP耗尽以及应用层CC攻击模拟。通过实战演示结合Wireshark抓包分析,清晰揭示了攻击原理与流量特征,并提供了从主机加固、防火墙规则到交换机安全配置(如端口安全、DHCP Snooping)等企业级防御方案,旨在帮助安全人员构建纵深防御体系。

weixin_29313423的博客 398

Android回调机制

一、回调函数   回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。详细解释:   客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于...

adao123456的博客 304

量化交易如何利用涨停板策略收割散户

量化交易通过算法筛选特定特征的股票,在早盘建立底仓后,利用大单拉升制造抢筹假象,吸引散户跟风买入。这种策略利用了散户的认知偏差,如锚定效应和从众心理,导致次日低开闷杀。从技术实现来看,量化策略通过控制买入量、隐藏真实意图等手段,精准执行隔日砸策略。对于短线交易者而言,理解量化资金的运作逻辑和识别危险涨停板的特征至关重要,这包括观察封板时间、盘口挂单、量价关系等多维度数据。在算法主导的市场中,散户需要升级交易工具和策略,从预测走势转向应对走势,才能避免成为量化策略的牺牲品。

weixin_33046983的博客 288

java8 callback_谈谈我对Java中CallBack的理解

CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了。"回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)是非常必要的。那么什么是回调函数呢?我认为,回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机。这里有两点需要注意:第一点,我们写回...

weixin_28765561的博客 267

群晖Web Station实战:从零搭建个人静态导航站

本文详细介绍了如何利用群晖NAS自带的Web Station套件,从零开始搭建个人静态导航站。通过安装Web Station、上传静态网站源码、配置网页服务与网络门户等步骤,无需代码基础即可实现内网访问。文章还分享了文件权限设置、个性化定制及常见问题排查等实用技巧,帮助用户高效管理个人常用网址,充分挖掘NAS的服务器潜能。

tea88的博客 1330

Qt/C++编写自定义控件49-飞机仪表盘

一、前言 飞行仪表是测定和表示飞机数据的工具,飞机中必不可少的一部分,飞行员根据飞行仪表表示的数据才能正确地做出判断。一般飞机仪表包括高度表+空速表+垂直速率表+姿态仪+航向指示表+转弯协调表。 这次要绘制的是其中的姿势仪,显示飞机相对于地平线的姿态,看姿态仪,飞行员能判断飞机姿态为偏左偏右,及偏上和偏下。姿态仪作用原理为一高度旋转的陀螺,不论飞机的姿态如何变化,此陀螺的定轴性在空间保持相同,因而...

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 7024

谈谈我对Java中CallBack的理解

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438我们一起学Java!   CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Jav...

chuifuhuo6864的博客 151

【OpenClaw从入门到精通】第09篇:企业级实践——将OpenClaw接入钉钉,打造7×24小时数字员工(2026实测版)

本文聚焦OpenClaw的企业级落地实践,以“招聘数字专员”为核心场景,完整演示从钉钉接入到全流程自动化的实现路径。内容涵盖企业级部署架构设计、前置环境搭建、核心技能开发、流程串联、安全权限管控及运维监控六大模块,详解简历解析、岗位匹配、外呼集成、CRM同步、日历提醒等关键技能的构建逻辑与代码实现。借鉴中关村科金、网易智企的企业级实践经验,重点突破企业知识融合、安全权限管控、业务系统连接三大核心门槛,提供可直接参考的配置示例与操作步骤。所有技术方案均基于公开文档与实测验证,兼顾新手入门与进阶实操。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1172

java中Callback的理解

CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了。"回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)是非常必要的。   那么什么是回调函数呢?我认为,回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机。这里有两点需要注意:第一点,

hupuxiang的专栏 581

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CallBack 的理解和java实现

对于callback 的理解我的意思是:当对象A调用方法a时,a方法包含B对象的引用,我们就可以根据这个引用实现对B方法的调用: public class CallBackTest { /** * @param args */ public static void main(String[] args) { new TestCallBack().compute(5, n

taizhen/blog 568

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java中对于callback的理解

参考链接: http://borissun.iteye.com/blog/806396 http://blog.youkuaiyun.com/giianhui/article/details/6211504

XiuXiuBlaza 765

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java call_谈谈我对Java中CallBack的理解

CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了。"回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)是非常必要的。那么什么是回调函数呢?我认为,回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机。这里有两点需要注意:第一点,我们写回...

weixin_33230433的博客 311
上一篇: 【Java】 日期转换【Date--long--String】
下一篇: 【Java】JXL 操作 Excel
疯疯爱吃辣
博客等级 码龄15年 25粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值