Проблема параллелизма с Android - PullRequest
0 голосов
/ 10 сентября 2011

У меня проблемы с параллелизмом.Ситуация выглядит следующим образом:

У меня есть метод, который регулирует яркость следующим образом (он выполняется в потоке пользовательского интерфейса):

public void adjustBrightness(final float brightness) {
    window_object.setBrightness(brightness); 
    window_object2.setBrightness(brightness);
}

Метод setBrightness, вызываемый для этих объектов,второй блок кода в этом вопросе: Чистый способ реализации постепенного замирания яркости в Android?

Как вы можете видеть, этот блок кода выполняется в другом потоке.Это проблематично, потому что это означает, что setBrightness возвращается, как только поток запускается, заставляя window_object2 регулировать его яркость, пока window_object все еще регулируется.Я не хочу, чтобы они выполнялись одновременно!

Как я могу обеспечить последовательное выполнение этих методов, чтобы они не чередовались?Помните, мне нужны методы, которые считаются «безопасными», поэтому я не получаю неясных ошибок параллелизма.

Спасибо.

1 Ответ

1 голос
/ 10 сентября 2011

Простой: удалить вторую строку.

У вас есть только один экран. Код, на который вы ссылаетесь, влияет на яркость всего экрана. Следовательно, вам нужно запустить этот код только один раз.

Код, на который вы ссылаетесь, довольно неэффективен, кстати - используйте postDelayed() и избавьтесь от фонового потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...