我在并发方面遇到了一些麻烦。情况如下:
我有一个像这样调整亮度的方法(它在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_object2
在window_object
仍在调整时调整其亮度。我不希望它们同时执行!
如何强制执行这些方法的顺序执行,使它们不会交错?请记住,我需要被认为是“安全”的方法,所以我不会得到模糊的并发错误。
感谢。
答案 0 :(得分:1)
简单:删除第二行。
您只有一个屏幕。您链接的代码会影响整个屏幕的亮度。因此,您只需要运行一次该代码。
你链接到的代码相当低效,BTW - 使用postDelayed()
并摆脱后台线程。