Мне нужно обновить некоторый интерфейс и сделать его внутри потока пользовательского интерфейса, используя 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
}
});
}