【发布时间】:2018-10-16 21:41:38
【问题描述】:
我偶然发现了一个 Android Service 类中的一段代码,它有一个带等待语句的同步块。 代码如下:
public class MyService extends IntentService{
protected void onHandleIntent(Intent intent){
synchronized(this){
try{
wait(10000);
}catch(InterruptedException e){
e.printStackTrack();
}
String message = intent.getStringExtra("Message");
showMessage(message);
}
}
}
上面的代码是不是意味着任意数量的线程都可以进入synchronized块?我知道sleep 将Thread 置于阻塞状态。这与Thread 调用wait() 相同吗?
基本上,当我将文本传递给Service 时,我希望Service 等待10 秒,然后在LogCat 中显示消息。
我从来没有使用过wait(),所以有人可以向我解释一下上面的代码在做什么吗?
【问题讨论】:
标签: java android concurrency android-service java-threads