Android - как передать данные в Runnable в runOnUiThread?

Мне нужно обновить некоторый пользовательский интерфейс и сделать это внутри потока пользовательского интерфейса с помощью runOnUiThread
Теперь данные для пользовательского интерфейса поступают из другого потока, представленного по данным здесь.

Как я могу передать данные в Runnable, чтобы их можно было использовать для обновления пользовательского интерфейса? Android, похоже, не позволяет использовать данные напрямую. Есть ли элегантный способ сделать это?

public void OnNewSensorData(Data data) {

    runOnUiThread(new Runnable() {
        public void run() {
            //use data
        }
    });
}

Мое решение заключалось в создании поля private Data sensordata внутри исполняемого файла и назначении ему данных. Это работает только в том случае, если исходные Данные являются окончательными.

public void OnNewSensorData(final Data data) {

    runOnUiThread(new Runnable() {
        private Data sensordata = data;
        public void run() {
            //use sensordata which is equal to data
        }
    });
}
25
задан Skip 13 October 2011 в 12:50
поделиться