の拡張:私はちょうど公式Androidのサイト上で、次のコードを発見したIntentServiceクラスに
@Override
protected void onHandleIntent(Intent intent) {
// 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) {
}
}
}
}
をし、また、私は、次の論文を読んで:
- はに配信すべての意図を実行し、デフォルトのワーカースレッドを作成します。アプリケーションのメインスレッドとは別のonStartCommand()。
- 一度に1つのインテントをonHandleIntent()実装に渡す作業キューを作成するので、マルチスレッドについて心配する必要はありません。
IntentServiceがワーカースレッドを使用していて、マルチスレッド化について心配する必要がない場合、なぜonHandleIntent(...)メソッドでブロックを同期させる必要があるのですか?ありがとうございました。
ありがとうございました。 – user1166635