From adde150c02e45ff6219445c4a5b04d2e9ee1f1b4 Mon Sep 17 00:00:00 2001 From: Florian Salbrechter Date: Mon, 8 Feb 2016 13:36:43 +0000 Subject: [PATCH] Fix bug in IntentService and Service example code. Use Thread.sleep instead of Object.wait which simplifies the example. Also there is a tiny chance, that wait will be called with 0, which blocks forever. Change-Id: I4cf90a33089a64bdf802620350f76af08f15f721 (cherry picked from commit 77d8857ed58503669e0659989c02fb7f1ca936b4) --- docs/html/guide/components/services.jd | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/docs/html/guide/components/services.jd b/docs/html/guide/components/services.jd index 69ba1d60d2c6..41c6d69d98b6 100644 --- a/docs/html/guide/components/services.jd +++ b/docs/html/guide/components/services.jd @@ -336,14 +336,11 @@ public class HelloIntentService extends IntentService { 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) { - } - } + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + // Restore interrupt status. + Thread.currentThread().interrupt(); } } } @@ -405,14 +402,11 @@ public class HelloService extends Service { 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) { - } - } + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + // Restore interrupt status. + Thread.currentThread().interrupt(); } // Stop the service using the startId, so that we don't stop // the service in the middle of handling another job -- 2.11.0