#android #runnable #kotlin-android-extensions #kotlin-coroutines
#Android #работоспособный #kotlin-android-extensions #kotlin-сопрограммы
Вопрос:
Я использую nisrulz QReader. Как в примерах
qrEader = new QREader.Builder(this, mySurfaceView, new QRDataListener() {
@Override
public void onDetected(final String data) {
// Log.d("QREader", "Value : " data);
text.post(new Runnable() {
@Override
public void run() {
doSomething(data);
}
});
}
}).facing(QREader.BACK_CAM)
.enableAutofocus(true)
.height(mySurfaceView.getHeight())
.width(mySurfaceView.getWidth())
.build();
у них есть текст, который является TextView, что делает возможным post (Runnable). У меня нет никаких представлений, и я не хочу добавлять..
Как я могу запустить doSomething(data)
только один раз в другом потоке?
РЕДАКТИРОВАТЬ: я попытался преобразовать пример кода Java в Kotlin:
qreader = QREader.Builder(view.context, surface_view, QRDataListener { data ->
myTextView.post {
doSomething(data)
}
})
.facing(QREader.BACK_CAM)
.enableAutofocus(true)
.height(surface_view.height)
.width(surface_view.width)
.build()
Комментарии:
1. В Java нет сопрограмм. m Вы можете создать поток и запустить его, что, вероятно, является тем, что вы хотите. Я отвечаю на HJava, потому что это не похоже на код Kotlin — я не думаю, что он вообще использует ключевое слово new.
2. @GabeSechan Это был просто пример. Я использую эту библиотеку в своем проекте Kotlibn. К сожалению,
Handler().post{}...
не сработает.