java - 将数据传输到 onSuccess() 方法
问题描述
在下面的代码中,我将过程的结果写入文本字段。代码作为任务的一部分执行。
我希望将文本(字符串“test”)“传输”到 onSuccess() 方法,以便可以在 onSuccess() 中使用它。我不想通过静态/全局变量来做到这一点。
我的问题是:我可以将数据传输到 onSucess() 方法吗?
private void recognizeTextFromImage(InputImage image) {
String test = “Test“
TextRecognizer recognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);
Task<Text> task = recognizer.process(image);
// recognizer.process(image)
task
.addOnSuccessListener(
new OnSuccessListener<Text>() {
@Override
public void onSuccess(Text texts) {
recognizedText = processTextRecognitionResult(texts);
editText_Test.setText(test + recognizedText);
Log.d(TAG,"Successful: " + recognizedText);
}
})
.addOnFailureListener(
new OnFailureListener() {
}
});
recognizer.close();
}
解决方案
变量“测试”不是某种“全局”。根据定义,它是一个局部变量,因此,每次调用者启动该方法时都会实例化一个新变量。我看不出只在 onSuccess 中使用测试变量没有并发问题,除非 TextRecognizer 以某种非常奇怪的方式实现。
推荐阅读
- android-jetpack-compose - 不能在同一个 Measurable 上多次调用 measure()
- c# - A* 寻路导致滞后 Unity3D
- reactjs - react 对 UI 中的所有组件进行了更改,但我只想要单击的组件
- android - 将 rememberSaveable 与 mutableStateListOf 一起使用
- google-sheets - 动态工作表日历不一致地计算 EOMONTH,并比较来自具有相同数字的两个单元格的公式,给出 FALSE 结果
- dependency-injection - Depedency injection in crystal language
- vue.js - 表vuejs中td中的可拖动div
- angular - SSR head.querySelector 不是函数
- reactjs - 为什么我无法在 ReactJS 中引用 ref
- javascript - 为什么 React 状态在第二次调用时不会改变?