每日日报2021 4/12

回调方法是将功能定义与功能分开的一种手段,一种解耦合的设计思想;在Java中回调是通过接口来实现的, 作为一种系统架构,必须要有自己的运行环境,且需要为用户提供实现接口;实现依赖于客户,这样就可以 达到接口统一,实现不同,系统通过在不同的状态下"回调"我们的实现类,从而达到接口和实现的分离!

比如:你周五放学回家,你问你老妈煮好饭没,你妈说还没煮;然后你跟她说: 老妈,我看下喜羊羊,你煮好饭叫我哈! 分析

android为GUI组件提供了一些事件处理的回调方法,以View为例,有以下几个方法

在该组件上触发屏幕事件: boolean onTouchEvent(MotionEvent event);
在该组件上按下某个按钮时: boolean onKeyDown(int keyCode,KeyEvent event);
开组件上的某个按钮时: boolean onKeyUp(int keyCode,KeyEvent event);
长按组件某个按钮时: boolean onKeyLongPress(int keyCode,KeyEvent event);
键盘快捷键事件发生: boolean onKeyShortcut(int keyCode,KeyEvent event);
在组件上触发轨迹球屏事件: boolean onTrackballEvent(MotionEvent event);
当组件的焦点发生改变,和前面的6个不同,这个方法只能够在View中重写哦! protected void onFocusChanged(boolean gainFocus, int direction, Rect previously FocusedRect)

另外,这了解释下什么是轨迹球,不过用处不大,在以前黑莓的手机上可以看到;当我们浏览网页的的时候 ,可以把轨迹球看作鼠标,不过这样的操作,我们用onTouchEvent就可以解决了,而且不够美观,所以现在 用的很好,基本不用,如果你有兴趣想看看的话,可以在原始Android模拟器按f6就可以看到了!

和老妈约定了一个接口,你通过这个接口叫老妈煮饭,当饭煮好了的时候,你老妈 又通过这个接口来反馈你,"饭煮好了"!

原文地址:https://www.cnblogs.com/song-1/p/14853367.html