Мне нужно обновить некоторый пользовательский интерфейс и сделать это внутри потока пользовательского интерфейса, используя runOnUiThread
. Теперь данные для пользовательского интерфейса поступают из другого потока, представленного здесь data
.
Как я могу передать данные в Runnable, чтобы их можно было использовать для обновления пользовательского интерфейса?Android, кажется, не позволяет использовать данные напрямую.Есть ли элегантный способ сделать это?
public void OnNewSensorData(Data data) {
runOnUiThread(new Runnable() {
public void run() {
//use data
}
});
}
Моим решением было создание fioeld private Data sensordata
внутри исполняемого файла и присвоение ему данных.Это работает, только если оригинал Data data
является окончательным.
public void OnNewSensorData(final Data data) {
runOnUiThread(new Runnable() {
private Data sensordata = data;
public void run() {
//use sensordata which is equal to data
}
});
}