Android的并发问题

时间:2011-09-10 09:16:53

标签: android concurrency

我在并发方面遇到了一些麻烦。情况如下:

我有一个像这样调整亮度的方法(它在UI线程中执行):

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

调用这些对象的setBrightness方法是此问题中的第二个代码块: Clean way to implement gradual fading of brightness in Android?

如您所见,该代码块在另一个线程内执行。这是有问题的,因为这意味着setBrightness在线程启动后立即返回,导致window_object2window_object仍在调整时调整其亮度。我不希望它们同时执行!

如何强制执行这些方法的顺序执行,使它们不会交错?请记住,我需要被认为是“安全”的方法,所以我不会得到模糊的并发错误。

感谢。

1 个答案:

答案 0 :(得分:1)

简单:删除第二行。

您只有一个屏幕。您链接的代码会影响整个屏幕的亮度。因此,您只需要运行一次该代码。

你链接到的代码相当低效,BTW - 使用postDelayed()并摆脱后台线程。