java - 回调完成后如何执行原始方法?
问题描述
我开发代码时出现了一些问题。例如)
一个.java
public OnResultCallbackListener(){
part C
}
protected void onCreate(){
(skipped)
button.setOnClickListener(){
method a(arg0, arg1, arg2, ...., OnResultCallbackListener);
--------------------------------
part B
--------------------------------
}
}
我想按这个顺序执行。当我单击按钮时,方法 a 执行。并且方法 A 将调用回调(OnResultCallbackListener),当 OnResultCallbackListener 完成时(部分 C),执行方法 a 下面的代码(部分 B)
因此,顺序是方法 A - OnResultCallbackListener(C 部分)- B 部分。但我的代码首先执行 B 部分。OnResultCallbackListener 需要服务器连接,所以无法修改。
在这种情况下,我怎样才能以我想要的方式执行我的代码?
解决方案
使用复合侦听器包装回调侦听器。
public OnResultCallbackListener(){
// part C
}
public CompoundCallbackListener(){
OnResultCallbackListener();
// part B
}
protected void onCreate() {
// (skipped)
button.setOnClickListener(){
method a(arg0, arg1, arg2, ...., CompoundCallbackListener);
}
}
推荐阅读
- python - 子图和 twinx 轴
- swift - 如何将 compositingFilter 添加到 NStextfield
- java - 无法构造可恢复密钥。你的证件有效吗?
- oracle - Oracle 版本和 Spring Boot
- javascript - 阻止创建 WebMediaPlayer 的尝试,因为已经存在太多 WebMediaPlayer
- python - 迭代数据框的两列并根据另一列的条件替换空值
- javascript - 使用 getScrollHeight 判断滚动条底部在 PC Chrome 中可以正常工作,但不能在 Chrome 的移动设备上工作
- javascript - 使用 findById 时无法在数组中传递多个文档
- spring-boot - 在 Spring Boot 中使用 ScheduledExecutorService 在每月的第一天运行一个任务
- sql - 如何在列中列出唯一条目以及在下一列中它们重复的相应时间?