为什么在此IntentService示例中使用了同步块?

时间:2011-12-09 23:19:10

标签: android

Android文档说明了有关IntentService的内容:

  

[IntentService]创建一个工作队列,一次将一个意图传递给onHandleIntent()实现,因此您不必担心多线程。

但是在接下来的示例中,他们在方法onHandleIntent中使用了一个synchronized块,就好像它应该同时执行一样。

protected void onHandleIntent(Intent intent) {
    synchronized (this) {
        Some operations...
    }
}

为什么他们在这里使用同步?我错过了什么吗?

1 个答案:

答案 0 :(得分:6)

在我看到的例子中,他们在onHandleIntent()中使用wait()来休眠5秒。当你调用wait()时,你必须保持对象的锁定 - 这就是他们使用synchronize()的原因。

所以synchronize()并不重要,它只是他们为这个例子选择的样本工作的细节。