Код: Выделить всё
EditText loggerText;
final Handler handlerLogger = new Handler(Looper.getMainLooper());
final int delayHandlerLogger = 200;
public void syncSongs() {
handlerLogger.removeCallbacksAndMessages(null);
loggerText.setText("");
loggerText.post(this::processLogger);
}
public void processLogger() {
handlerLogger.postDelayed(new Runnable() {
public void run() {
if (!isQueueEmpty()) {
String loggerLine = getQueueLastString;
String textCheck = loggerText.getText().toString();
loggerText.append(loggerLine + "\n");
}
handlerLogger.postDelayed(this, delayHandlerLogger);
}
}, delayHandlerLogger);
}
Почему? Я что-то упускаю? Что не так с этим асинхронным процессом?
Кажется, loggerText Это дублирующийся объект в Runnable, потому что, когда я переключаю Activity и проверяю его на Resume/onStart, текст пусто, а внутри Runnable остается добавленный текст на предыдущей итерации (невозможно получить это).
Подробнее здесь: https://stackoverflow.com/questions/783 ... an-handler
Мобильная версия