Мое приложение выполняет ряд обновлений пользовательского интерфейса в непосредственной близости, например:
- Пользователь получает ход, и все плитки вида сетки обновляются
- ИИ принимает ход, и все плитки вида сетки обновляются
- ИИ делает еще один ход, и все плитки вида сетки обновляются
Чтобы каждое из этих обновлений было видно пользователю, я добавил каждую из этих задач обновления в обработчик в потоке, не являющемся пользовательским интерфейсом. Эти задачи адаптера notifyDataSetChanged () затем добавляются в обработчик потока пользовательского интерфейса.
Тем не менее, единственный способ сделать каждое обновление отчетливым, это указать Thread.sleep () после его запуска. Даже с этим сном иногда 2 и 3 объединяются, и пользователь видит только 3.
Кроме того, при выполнении 3 иногда требуется дополнительная доля секунды для обновления всей сетки. Таким образом, вместо 3 чистых обновлений сетки, пользователь увидит 4.
Насколько я вижу, я выполняю функцию обработчика в соответствии с рекомендациями руководства по программированию. Поэтому мне интересно, что еще я могу сделать, чтобы лучше контролировать, когда обновляется пользовательский интерфейс? Я могу что-нибудь сделать?