Я получаю значение для переменной selectedLanguageCode внутри successListener, но из слушателя оно становится нулевым.Почему это происходит?
Я поместил свой код в поток, но, похоже, он не работает.
Thread thread = new Thread(new Runnable() {
public void run() {
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyLanguage(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(@Nullable String languageCode) {
if (languageCode != "und") {
detectedLanguageCode = languageCode;
//At this point detectedLanguageCode gets value
} else {
Log.i(TAG, "Can't identify language.");
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be loaded or other internal error.
// ...
}
});
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// At this point detectedLanguageCode is null.