У меня есть следующие в моей основной деятельности для входа в TextView элементОбновление Android TextView от обратного вызова
public synchronized void log(String msg) {
TextView t=(TextView)findViewById(R.id.log);
t.append(msg + "\n");
}
У меня также есть следующие функции обратного вызова для обработки тегов NFC:
@Override
public void onTagDiscovered(Tag tag) {
log("NEW TAG!");
}
Когда используя log()
от моего основного действия, он работает так, как ожидалось. Но когда обратный вызов пытается использовать его, он не регистрирует данные, и после этого TextView больше не обновляется для обычных журналов. Я предполагаю, что это потому, что onTagDiscovered()
вызывается из другого потока. Как я могу сделать эту работу должным образом?
Это именно то, что я искал :) Спасибо! Примечание: требуется Java 8 для lambdas –
Любой способ иметь эту работу с Java 1.7 и SDK 17? –
Да. Без lambdas последнюю строку можно написать следующим образом: handler.post (new Runnable() { public void run() { log ("NEW TAG!"); } }); –