Я заметил похожую проблему для dot NET, но моя проблема для Android, поэтому, возможно, решение выглядит иначе.
Процесс активируется нажатием кнопки. Процесс выполнялся как часть потока пользовательского интерфейса, и в конце он обновлял пользовательский интерфейс. Я добавил диалог прогресса, чтобы сделать его более удобным для пользователя, поэтому я создаю экземпляр потока, выполняющего процесс, и в конце он обновляет пользовательский интерфейс и закрывает диалог прогресса. К сожалению, обновление пользовательского интерфейса не выполняется, за исключением следующих случаев:
07-19 21:14:04.602: ERROR/Atjeews(283): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Если я попытаюсь заблокировать поток пользовательского интерфейса и освободить его после завершения длительного процесса обновления пользовательского интерфейса, диалоговое окно хода выполнения не отобразится. Стоит ли вместо этого показывать диалог прогресса в отдельном потоке, или есть другое более простое решение?