将数据传递给onSuccess()方法



在下面的代码中,我将一个过程的结果写入一个Text字段。代码作为任务的一部分执行。

我想"转移"文本(字符串"测试")到onSuccess()方法,这样我就可以在onSuccess()中使用它。我不想通过静态/全局变量来实现。

我的问题是:我可以将数据传输到onsuccess()方法吗?

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中使用test变量没有并发性问题,除非TextRecognizer以某种非常奇怪的方式实现。

最新更新