少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述java/Android 接口调用的几种写法相关的知识,希望能为你提供帮助。
虽然Handler用的地方比较普遍,但是接口也有他的独特之处,比较直观,然后降低了耦合性
如有一接口,需要将数据传给使用的activity中,接口如下
public interface PushValue { void push(byte v,byte v2); }
1:判断context是否继承并通知调用接口
if(context instanceof PushValue){ ((PushValue)context).push((byte)(crc16& 0xff),(byte) ((0xff00 & crc16) > > 8)); }
这时只需要在数据传递处强制转换这个接口并调用,然后在使用处(比如Activity中 implements这个接口并实现其push方法即可)
@Override public void push(byte v,byte v2) { tvCrcResult.setText(""); tvCrcResult.setText(ConvertHexByteToString(v)+""+ConvertHexByteToString(v2)); }
2:setCallBack的方式
1方法你会发现我们需要给数据源传context这个值,然而传了之后代码的耦合性就变强了,所以第二种方法解决了此麻烦
private PushValue pushValue ; public void setPushValueCallBack(PushValue pushValueCallBack){ this.pushValue = https://www.songbingjia.com/android/pushValueCallBack; }
先声明接口在建立一个set方法,作用是将外部即将实例化的接口传进来,然后直接在数据源产生处调用 接口内方法即可
pushValue.push((byte)(crc16& 0xff),(byte) ((0xff00 & crc16) > > 8));
外部实例了使用setPushValueCallBack这个方法的类之后,直接调用setPushValueCallBack方法即可
new xxx类.setPushValueCallBack(new Crc16.PushValue() { @Override public void push(byte v, byte v2) { //执行相关操作即可 } });
这个是仿照android绑定点击监听器写的,这个也是类似于监听器,数据源有数据传过来,使用的地方将会监听到变化然后执行相应操作
接口和Handler有什么区别?
调用Handler系统是会将你的Handler放在主线程中去执行的,然而我们调用的接口却还是在原本的线程中运行
【java/Android 接口调用的几种写法】
推荐阅读
- xamarin android,UWP 网络类型和IP地址
- Android canvas rotate():平移旋转坐标系至任意原点任意角度-------附(android反三角函数小结)
- 如何修复Windows 10开始菜单不起作用的严重错误(解决方法)
- 如何使用iPhone XR(6个基本提示和技巧)
- 提高品牌知名度的最有效和最佳方法详细指南
- 如何在Windows 10计算机中检查.NET Framework版本(解决方法)
- 如何在TikTok上传DSLR视频(方法分步指南)
- Windows 10的22款最佳免费驱动程序更新软件推荐合集
- 如何在Windows 10计算机中获取文件资源管理器帮助(教程和指南)