Android文档说明了有关IntentService的内容:
[IntentService]创建一个工作队列,一次将一个意图传递给onHandleIntent()实现,因此您不必担心多线程。
但是在接下来的示例中,他们在方法onHandleIntent中使用了一个synchronized块,就好像它应该同时执行一样。
protected void onHandleIntent(Intent intent) {
synchronized (this) {
Some operations...
}
}
为什么他们在这里使用同步?我错过了什么吗?
答案 0 :(得分:6)
在我看到的例子中,他们在onHandleIntent()中使用wait()来休眠5秒。当你调用wait()时,你必须保持对象的锁定 - 这就是他们使用synchronize()的原因。
所以synchronize()并不重要,它只是他们为这个例子选择的样本工作的细节。