У меня есть RecyclerView, где вы можете смахнуть левые элементы, чтобы заархивировать их. Сначала будет показан макет отмены, затем через 2 секунды он будет заархивирован (теперь для первого теста я просто удаляю элемент). Проблема в том, что использование notifyItemRemoved(pos)
из потока Timer приводит к сбою приложения, сообщая, что только исходный поток, создавший представление (поток пользовательского интерфейса), может касаться его представлений. Есть ли хитрость, чтобы обойти это? Я использую таймер внутри ViewHolder моего расширенного класса RecyclerView.Adapter.
Вот код таймера:
archiveTimer.schedule(new TimerTask() {
@Override
public void run() {
notesController.remove(position);
notesList.remove(position);
queuedForArchive = false;
}
}, 2000);
На действиях вы можете использовать runOnUiThread, но я не могу это использоватьлибо (функция MainActivity.runOnUiThread(Runnable)
не является статичной, поэтому я не могу использовать ее вне MainActivity)