Для обновления из отдельного потока необходимо либо удерживать блокировку события, либо работать в потоке события. Самый надежный способ сделать это - использовать invokeLater () для помещения вашего запроса в очередь событий для обработки в потоке событий.
public void run() { //this is your Runnable for your Thread
//do stuff
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
vfm.replace(oldField, newField);
}
});
}
vfm должна быть переменной класса или объявлена как финальная, чтобы быть видимой для этого.