1
通過閱讀Android page on Services,他們展示了一個基本的IntentService實現的例子。我計劃實施類似的東西,因爲它需要綁定。但是,我很困惑他們爲什麼需要使用下面的synchronized塊。如果有人能夠闡明這一點,我會非常感激。爲什麼在這裏需要同步?
// Handler that receives messages from the thread
private final class ServiceHandler extends Handler {
public ServiceHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
// Normally we would do some work here, like download a file.
// For our sample, we just sleep for 5 seconds.
long endTime = System.currentTimeMillis() + 5*1000;
while (System.currentTimeMillis() < endTime) {
synchronized (this) {
try {
wait(endTime - System.currentTimeMillis());
} catch (Exception e) {
}
}
}
// Stop the service using the startId, so that we don't stop
// the service in the middle of handling another job
stopSelf(msg.arg1);
}
}
我不知道什麼wait()方法,可能睡覺的線程。恕我直言,同步塊已過時,只要wait()方法不啓動單獨的線程。 – 2014-09-28 03:06:54
如果我們都得到一個猜測,那麼我的猜測是確保線程在睡眠時不會中斷。沒有其他人可以通知線程,如果他們不能同步()它。但是,似乎沒有必要考慮演示。 – 2014-09-28 03:34:05
Plz引用此:http://stackoverflow.com/questions/9892144/extending-the-intentservice-class – 2014-09-28 03:44:12