1 page.title= 2 @jd:body 3 4 <div id="qv-wrapper"> 5 <ol id="qv"> 6 <h2> </h2> 7 <ol> 8 <li><a href="#Basics"> </a></li> 9 <ol> 10 <li><a href="#Declaring"> </a></li> 11 </ol> 12 <li><a href="#CreatingAService"> </a> 13 <ol> 14 <li><a href="#ExtendingIntentService">IntentService </a></li> 15 <li><a href="#ExtendingService"> </a></li> 16 <li><a href="#StartingAService"> </a></li> 17 <li><a href="#Stopping"> </a></li> 18 </ol> 19 </li> 20 <li><a href="#CreatingBoundService"> </a></li> 21 <li><a href="#Notifications"> </a></li> 22 <li><a href="#Foreground"> </a></li> 23 <li><a href="#Lifecycle"> </a> 24 <ol> 25 <li><a href="#LifecycleCallbacks"> </a></li> 26 </ol> 27 </li> 28 </ol> 29 30 <h2>Key </h2> 31 <ol> 32 <li>{@link android.app.Service}</li> 33 <li>{@link android.app.IntentService}</li> 34 </ol> 35 36 <h2></h2> 37 <ol> 38 <li><a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/ServiceStartArguments.html">{@code 39 ServiceStartArguments}</a></li> 40 <li><a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html">{@code 41 LocalService}</a></li> 42 </ol> 43 44 <h2> </h2> 45 <ol> 46 <li><a href="{@docRoot}guide/components/bound-services.html"> </a></li> 47 </ol> 48 49 </div> 50 51 52 <p>{@link android.app.Service} 53 . 54 , 55 . , 56 , (IPC) . 57 , I/O 58 .</p> 59 60 <p> .</p> 61 62 <dl> 63 <dt></dt> 64 <dd> "" (: ) 65 {@link android.content.Context#startService startService()} . 66 , . , 67 . 68 . , 69 .</dd> 70 <dt></dt> 71 <dd> "" {@link 72 android.content.Context#bindService bindService()} . - 73 , 74 (IPC) . 75 . , 76 .</dd> 77 </dl> 78 79 <p> , 80 . ( ) . 81 . {@link 82 android.app.Service#onStartCommand onStartCommand()} , {@link 83 android.app.Service#onBind onBind()} .</p> 84 85 <p> , 86 ( ), 87 . {@link android.content.Intent} . , 88 . 89 <a href="#Declaring"> 90 </a> .</p> 91 92 <p class="caution"><strong>:</strong> 93 . <strong></strong>, 94 <strong></strong>( ). , 95 CPU ( MP3 96 ), . 97 ' (ANR)' 98 .</p> 99 100 101 <h2 id="Basics"> </h2> 102 103 <div class="sidebox-wrapper"> 104 <div class="sidebox"> 105 <h3> ?</h3> 106 <p> . 107 . , 108 .</p> 109 <p> 110 , . 111 , 112 {@link android.app.Activity#onCreate onCreate()} {@link 113 android.app.Activity#onStart onStart()} {@link android.app.Activity#onStop 114 onStop()} . , {@link java.lang.Thread} 115 {@link android.os.AsyncTask} {@link android.os.HandlerThread} . <a href="{@docRoot}guide/components/processes-and-threads.html#Threads"> 116 </a> .</p> 117 <p> 118 119 .</p> 120 </div> 121 </div> 122 123 <p> {@link android.app.Service} ( 124 ). 125 126 ( ). .</p> 127 128 <dl> 129 <dt>{@link android.app.Service#onStartCommand onStartCommand()}</dt> 130 <dd> (: ) 131 . {@link android.content.Context#startService 132 startService()} . 133 . 134 . {@link android.app.Service#stopSelf stopSelf()} {@link 135 android.content.Context#stopService stopService()} ( , 136 ).</dd> 137 <dt>{@link android.app.Service#onBind onBind()}</dt> 138 <dd> 139 ( RPC ). {@link android.content.Context#bindService 140 bindService()} . 141 . {@link android.os.IBinder} . 142 , null .</dd> 143 <dt>{@link android.app.Service#onCreate()}</dt> 144 <dd> 145 ({@link android.app.Service#onStartCommand onStartCommand()} 146 {@link android.app.Service#onBind onBind()} ). , 147 .</dd> 148 <dt>{@link android.app.Service#onDestroy()}</dt> 149 <dd> . 150 , (listener, receiver) 151 . .</dd> 152 </dl> 153 154 <p> {@link 155 android.content.Context#startService startService()} ({@link 156 android.app.Service#onStartCommand onStartCommand()} ), 157 {@link android.app.Service#stopSelf()} 158 {@link android.content.Context#stopService stopService()} .</p> 159 160 <p> 161 {@link android.content.Context#bindService bindService()} ( {@link 162 android.app.Service#onStartCommand onStartCommand()} <em></em> ), 163 . 164 .</p> 165 166 <p>Android 167 . 168 , <a href="#Foreground"> </a> ( ), . 169 , 170 171 . 172 . , 173 ( {@link 174 android.app.Service#onStartCommand onStartCommand()} . ). 175 <a href="{@docRoot}guide/components/processes-and-threads.html"> </a> 176 .</p> 177 178 <p> 179 .</p> 180 181 182 183 <h3 id="Declaring"> </h3> 184 185 <p>( ) , 186 .</p> 187 188 <p> <a href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> 189 <a href="{@docRoot}guide/topics/manifest/application-element.html">{@code <application>}</a> 190 . :</p> 191 192 <pre> 193 <manifest ... > 194 ... 195 <application ... > 196 <service android:name=".ExampleService" /> 197 ... 198 </application> 199 </manifest> 200 </pre> 201 202 <p> <a href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> 203 .</p> 204 205 <p><a href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> . 206 207 . <a href="{@docRoot}guide/topics/manifest/service-element.html#nm">{@code android:name}</a> 208 . . 209 . 210 ( <a href="http://android-developers.blogspot.com/2011/06/things-that-cannot-change.html"> 211 </a> ). 212 213 <p> <strong> 214 {@link android.app.Service} </strong> . 215 , 216 {@link 217 android.content.Intent} , {@link 218 android.content.Intent#setPackage setPackage()} 219 .</p> 220 221 <p> . 222 <a href="{@docRoot}guide/topics/manifest/service-element.html#exported">{@code android:exported}</a> 223 {@code "false"} . , 224 .</p> 225 226 227 228 229 <h2 id="CreatingStartedService"> </h2> 230 231 <p> {@link 232 android.content.Context#startService startService()} , 233 {@link android.app.Service#onStartCommand onStartCommand()} .</p> 234 235 <p> 236 . 237 . , 238 {@link android.app.Service#stopSelf stopSelf()} 239 {@link android.content.Context#stopService stopService()} .</p> 240 241 <p> (: ) {@link 242 android.content.Context#startService startService()} , {@link android.content.Intent} 243 . . 244 {@link android.content.Intent} {@link android.app.Service#onStartCommand 245 onStartCommand()} .</p> 246 247 <p> . 248 . {@link 249 android.content.Context#startService startService()} . {@link 250 android.app.Service#onStartCommand onStartCommand()} 251 . , 252 .</p> 253 254 <p class="caution"><strong>:</strong> 255 . , 256 , 257 . , 258 .</p> 259 260 <p> .</p> 261 <dl> 262 <dt>{@link android.app.Service}</dt> 263 <dd> . , 264 . 265 , 266 .</dd> 267 <dt>{@link android.app.IntentService}</dt> 268 <dd> {@link android.app.Service} , 269 . 270 . {@link 271 android.app.IntentService#onHandleIntent onHandleIntent()} , 272 .</dd> 273 </dl> 274 275 <p> 276 .</p> 277 278 279 <h3 id="ExtendingIntentService">IntentService </h3> 280 281 <p> 282 ( ), 283 {@link android.app.IntentService} .</p> 284 285 <p>{@link android.app.IntentService} .</p> 286 287 <ul> 288 <li> {@link 289 android.app.Service#onStartCommand onStartCommand()} 290 .</li> 291 <li> {@link 292 android.app.IntentService#onHandleIntent onHandleIntent()} 293 .</li> 294 <li> 295 {@link android.app.Service#stopSelf} .</li> 296 <li>{@link android.app.IntentService#onBind onBind()} null 297 .</li> 298 <li>{@link android.app.IntentService#onStartCommand 299 onStartCommand()} , {@link 300 android.app.IntentService#onHandleIntent onHandleIntent()} .</li> 301 </ul> 302 303 <p> {@link 304 android.app.IntentService#onHandleIntent onHandleIntent()} 305 . (, .)</p> 306 307 <p> {@link android.app.IntentService} .</p> 308 309 <pre> 310 public class HelloIntentService extends IntentService { 311 312 /** 313 * A constructor is required, and must call the super {@link android.app.IntentService#IntentService} 314 * constructor with a name for the worker thread. 315 */ 316 public HelloIntentService() { 317 super("HelloIntentService"); 318 } 319 320 /** 321 * The IntentService calls this method from the default worker thread with 322 * the intent that started the service. When this method returns, IntentService 323 * stops the service, as appropriate. 324 */ 325 @Override 326 protected void onHandleIntent(Intent intent) { 327 // Normally we would do some work here, like download a file. 328 // For our sample, we just sleep for 5 seconds. 329 long endTime = System.currentTimeMillis() + 5*1000; 330 while (System.currentTimeMillis() < endTime) { 331 synchronized (this) { 332 try { 333 wait(endTime - System.currentTimeMillis()); 334 } catch (Exception e) { 335 } 336 } 337 } 338 } 339 } 340 </pre> 341 342 <p> . {@link 343 android.app.IntentService#onHandleIntent onHandleIntent()} .</p> 344 345 <p> - {@link 346 android.app.IntentService#onCreate onCreate()}, {@link 347 android.app.IntentService#onStartCommand onStartCommand()} {@link 348 android.app.IntentService#onDestroy onDestroy()}- . 349 {@link android.app.IntentService} .</p> 350 351 <p> {@link android.app.IntentService#onStartCommand onStartCommand()} 352 ( {@link 353 android.app.IntentService#onHandleIntent onHandleIntent()} ).</p> 354 355 <pre> 356 @Override 357 public int onStartCommand(Intent intent, int flags, int startId) { 358 Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show(); 359 return super.onStartCommand(intent,flags,startId); 360 } 361 </pre> 362 363 <p>{@link android.app.IntentService#onHandleIntent onHandleIntent()} 364 {@link android.app.IntentService#onBind 365 onBind()}( ).</p> 366 367 <p> {@link android.app.Service} 368 . , 369 .</p> 370 371 372 <h3 id="ExtendingService"> </h3> 373 374 <p> {@link android.app.IntentService} 375 . 376 ( ), 377 {@link android.app.Service} .</p> 378 379 <p> . {@link 380 android.app.Service} , {@link 381 android.app.IntentService} . 382 .</p> 383 384 <pre> 385 public class HelloService extends Service { 386 private Looper mServiceLooper; 387 private ServiceHandler mServiceHandler; 388 389 // Handler that receives messages from the thread 390 private final class ServiceHandler extends Handler { 391 public ServiceHandler(Looper looper) { 392 super(looper); 393 } 394 @Override 395 public void handleMessage(Message msg) { 396 // Normally we would do some work here, like download a file. 397 // For our sample, we just sleep for 5 seconds. 398 long endTime = System.currentTimeMillis() + 5*1000; 399 while (System.currentTimeMillis() < endTime) { 400 synchronized (this) { 401 try { 402 wait(endTime - System.currentTimeMillis()); 403 } catch (Exception e) { 404 } 405 } 406 } 407 // Stop the service using the startId, so that we don't stop 408 // the service in the middle of handling another job 409 stopSelf(msg.arg1); 410 } 411 } 412 413 @Override 414 public void onCreate() { 415 // Start up the thread running the service. Note that we create a 416 // separate thread because the service normally runs in the process's 417 // main thread, which we don't want to block. We also make it 418 // background priority so CPU-intensive work will not disrupt our UI. 419 HandlerThread thread = new HandlerThread("ServiceStartArguments", 420 Process.THREAD_PRIORITY_BACKGROUND); 421 thread.start(); 422 423 // Get the HandlerThread's Looper and use it for our Handler 424 mServiceLooper = thread.getLooper(); 425 mServiceHandler = new ServiceHandler(mServiceLooper); 426 } 427 428 @Override 429 public int onStartCommand(Intent intent, int flags, int startId) { 430 Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show(); 431 432 // For each start request, send a message to start a job and deliver the 433 // start ID so we know which request we're stopping when we finish the job 434 Message msg = mServiceHandler.obtainMessage(); 435 msg.arg1 = startId; 436 mServiceHandler.sendMessage(msg); 437 438 // If we get killed, after returning from here, restart 439 return START_STICKY; 440 } 441 442 @Override 443 public IBinder onBind(Intent intent) { 444 // We don't provide binding, so return null 445 return null; 446 } 447 448 @Override 449 public void onDestroy() { 450 Toast.makeText(this, "service done", Toast.LENGTH_SHORT).show(); 451 } 452 } 453 </pre> 454 455 <p> {@link android.app.IntentService} .</p> 456 457 <p>, {@link android.app.Service#onStartCommand 458 onStartCommand()} . 459 , 460 ( ).</p> 461 462 <p>{@link android.app.Service#onStartCommand onStartCommand()} 463 . 464 ( {@link 465 android.app.IntentService} . ). 466 {@link android.app.Service#onStartCommand onStartCommand()} 467 .</p> 468 469 <dl> 470 <dt>{@link android.app.Service#START_NOT_STICKY}</dt> 471 <dd> {@link android.app.Service#onStartCommand 472 onStartCommand()} <em> .</em> 473 . , 474 .</dd> 475 <dt>{@link android.app.Service#START_STICKY}</dt> 476 <dd> {@link android.app.Service#onStartCommand 477 onStartCommand()} , {@link 478 android.app.Service#onStartCommand onStartCommand()} <em>.</em> 479 , null {@link android.app.Service#onStartCommand onStartCommand()} 480 . , 481 . 482 ( ) .</dd> 483 <dt>{@link android.app.Service#START_REDELIVER_INTENT}</dt> 484 <dd> {@link android.app.Service#onStartCommand 485 onStartCommand()} , {@link 486 android.app.Service#onStartCommand onStartCommand()} 487 . . 488 ( ) .</dd> 489 </dl> 490 <p> 491 .</p> 492 493 494 495 <h3 id="StartingAService"> </h3> 496 497 <p> 498 {@link android.content.Intent}( ) {@link 499 android.content.Context#startService startService()} . Android {@link 500 android.app.Service#onStartCommand onStartCommand()} {@link 501 android.content.Intent} . ({@link android.app.Service#onStartCommand 502 onStartCommand()} .)</p> 503 504 <p> ({@code 505 HelloService}) {@link android.content.Context#startService 506 startService()} .</p> 507 508 <pre> 509 Intent intent = new Intent(this, HelloService.class); 510 startService(intent); 511 </pre> 512 513 <p>{@link android.content.Context#startService startService()} 514 Android {@link android.app.Service#onStartCommand 515 onStartCommand()} . , {@link 516 android.app.Service#onCreate onCreate()} , {@link android.app.Service#onStartCommand 517 onStartCommand()} .</p> 518 519 <p> , {@link 520 android.content.Context#startService startService()} 521 . , 522 {@link android.app.PendingIntent} 523 ({@link android.app.PendingIntent#getBroadcast getBroadcast()} ) 524 {@link android.content.Intent} . 525 .</p> 526 527 <p> 528 {@link android.app.Service#onStartCommand onStartCommand()} . , 529 ({@link android.app.Service#stopSelf stopSelf()} {@link 530 android.content.Context#stopService stopService()} ) .</p> 531 532 533 <h3 id="Stopping"> </h3> 534 535 <p> . , 536 . 537 {@link android.app.Service#onStartCommand onStartCommand()} . , 538 {@link android.app.Service#stopSelf stopSelf()} , 539 {@link android.content.Context#stopService stopService()} .</p> 540 541 <p> {@link android.app.Service#stopSelf stopSelf()} {@link 542 android.content.Context#stopService stopService()} 543 .</p> 544 545 <p>, {@link 546 android.app.Service#onStartCommand onStartCommand()} 547 . 548 ( ). 549 , {@link android.app.Service#stopSelf(int)} 550 . , {@link 551 android.app.Service#stopSelf(int)} ID({@link android.app.Service#onStartCommand onStartCommand()} 552 <code>startId</code>) . 553 . {@link 554 android.app.Service#stopSelf(int)} , ID .</p> 555 556 <p class="caution"><strong>:</strong> 557 . . 558 . {@link 559 android.content.Context#stopService stopService()} . , 560 {@link 561 android.app.Service#onStartCommand onStartCommand()} .</p> 562 563 <p> <a href="#Lifecycle"> </a> .</p> 564 565 566 567 <h2 id="CreatingBoundService"> </h2> 568 569 <p> , {@link 570 android.content.Context#bindService bindService()} 571 ( {@link 572 android.content.Context#startService startService()} <em></em> ).</p> 573 574 <p> 575 . (IPC) 576 .</p> 577 578 <p> {@link 579 android.app.Service#onBind onBind()} 580 {@link android.os.IBinder} . 581 {@link android.content.Context#bindService bindService()} , 582 . 583 , ( 584 {@link android.app.Service#onStartCommand onStartCommand()} 585 <em></em> ).</p> 586 587 <p> 588 . 589 {@link android.os.IBinder} 590 {@link android.app.Service#onBind 591 onBind()} . {@link android.os.IBinder} 592 .</p> 593 594 <p> . 595 {@link android.content.Context#unbindService unbindService()} . 596 .</p> 597 598 <p> 599 . 600 <a href="{@docRoot}guide/components/bound-services.html"> </a> .</p> 601 602 603 604 <h2 id="Notifications"> </h2> 605 606 <p> <a href="{@docRoot}guide/topics/ui/notifiers/toasts.html"> </a> <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html"> </a> .</p> 607 608 <p> , 609 610 (: ).</p> 611 612 <p>, 613 (: ) 614 . , 615 (: ).</p> 616 617 <p> <a href="{@docRoot}guide/topics/ui/notifiers/toasts.html"> </a> <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html"> </a> 618 .</p> 619 620 621 622 <h2 id="Foreground"> </h2> 623 624 <p> 625 . 626 . 627 " " , 628 .</p> 629 630 <p> 631 . 632 . 633 .</p> 634 635 <p> {@link 636 android.app.Service#startForeground startForeground()} . . 637 {@link 638 android.app.Notification}. :</p> 639 640 <pre> 641 Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text), 642 System.currentTimeMillis()); 643 Intent notificationIntent = new Intent(this, ExampleActivity.class); 644 PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 645 notification.setLatestEventInfo(this, getText(R.string.notification_title), 646 getText(R.string.notification_message), pendingIntent); 647 startForeground(ONGOING_NOTIFICATION_ID, notification); 648 </pre> 649 650 <p class="caution"><strong>:</strong> {@link 651 android.app.Service#startForeground startForeground()} ID 0 .</p> 652 653 654 <p> {@link 655 android.app.Service#stopForeground stopForeground()} . , 656 . <em></em>. 657 , 658 .</p> 659 660 <p> <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html"> 661 </a> .</p> 662 663 664 665 <h2 id="Lifecycle"> </h2> 666 667 <p> . , 668 . 669 .</p> 670 671 <p> — — 672 .</p> 673 674 <ul> 675 <li> 676 <p> {@link 677 android.content.Context#startService startService()} . 678 . {@link 679 android.app.Service#stopSelf() stopSelf()} . 680 . {@link android.content.Context#stopService 681 stopService()} . .</p></li> 682 683 <li> 684 <p> () {@link 685 android.content.Context#bindService bindService()} . 686 {@link android.os.IBinder} . 687 {@link android.content.Context#unbindService unbindService()} . 688 , ( 689 <em></em> ).</p></li> 690 </ul> 691 692 <p> . , 693 {@link android.content.Context#startService startService()} . 694 , {@link android.content.Context#startService 695 startService()} {@link android.content.Intent} . , 696 697 , . {@link 698 android.content.Context#bindService bindService()} . {@link 699 android.content.Context#stopService stopService()} {@link android.app.Service#stopSelf 700 stopSelf()} . </p> 701 702 703 <h3 id="LifecycleCallbacks"> </h3> 704 705 <p> 706 . 707 .</p> 708 709 <pre> 710 public class ExampleService extends Service { 711 int mStartMode; // indicates how to behave if the service is killed 712 IBinder mBinder; // interface for clients that bind 713 boolean mAllowRebind; // indicates whether onRebind should be used 714 715 @Override 716 public void {@link android.app.Service#onCreate onCreate}() { 717 // The service is being created 718 } 719 @Override 720 public int {@link android.app.Service#onStartCommand onStartCommand}(Intent intent, int flags, int startId) { 721 // The service is starting, due to a call to {@link android.content.Context#startService startService()} 722 return <em>mStartMode</em>; 723 } 724 @Override 725 public IBinder {@link android.app.Service#onBind onBind}(Intent intent) { 726 // A client is binding to the service with {@link android.content.Context#bindService bindService()} 727 return <em>mBinder</em>; 728 } 729 @Override 730 public boolean {@link android.app.Service#onUnbind onUnbind}(Intent intent) { 731 // All clients have unbound with {@link android.content.Context#unbindService unbindService()} 732 return <em>mAllowRebind</em>; 733 } 734 @Override 735 public void {@link android.app.Service#onRebind onRebind}(Intent intent) { 736 // A client is binding to the service with {@link android.content.Context#bindService bindService()}, 737 // after onUnbind() has already been called 738 } 739 @Override 740 public void {@link android.app.Service#onDestroy onDestroy}() { 741 // The service is no longer used and is being destroyed 742 } 743 } 744 </pre> 745 746 <p class="note"><strong>:</strong> 747 <em></em> .</p> 748 749 <img src="{@docRoot}images/service_lifecycle.png" alt="" /> 750 <p class="img-caption"><strong> 2.</strong> . 751 {@link android.content.Context#startService 752 startService()} 753 {@link android.content.Context#bindService bindService()} .</p> 754 755 <p> , . </p> 756 757 <ul> 758 <li> <strong> </strong> {@link 759 android.app.Service#onCreate onCreate()} {@link 760 android.app.Service#onDestroy} . 761 {@link android.app.Service#onCreate onCreate()} {@link 762 android.app.Service#onDestroy onDestroy()} . 763 {@link 764 android.app.Service#onCreate onCreate()} , {@link 765 android.app.Service#onDestroy onDestroy()} . 766 767 <p>{@link android.app.Service#onCreate onCreate()} {@link android.app.Service#onDestroy 768 onDestroy()} . 769 {@link android.content.Context#startService startService()} {@link 770 android.content.Context#bindService bindService()} .</p></li> 771 772 <li> <strong> </strong> {@link 773 android.app.Service#onStartCommand onStartCommand()} {@link android.app.Service#onBind onBind()} . 774 {@link 775 android.content.Intent} {@link android.content.Context#startService 776 startService()} {@link android.content.Context#bindService bindService()} . 777 <p> 778 ( {@link android.app.Service#onStartCommand 779 onStartCommand()} ). , {@link 780 android.app.Service#onUnbind onUnbind()} .</p> 781 </li> 782 </ul> 783 784 <p class="note"><strong>:</strong> 785 {@link android.app.Service#stopSelf stopSelf()} {@link 786 android.content.Context#stopService stopService()} , 787 ( {@code onStop()} ). , 788 . {@link 789 android.app.Service#onDestroy onDestroy()} .</p> 790 791 <p> 2 . 792 {@link android.content.Context#startService startService()} 793 {@link android.content.Context#bindService bindService()} 794 , . 795 , {@link android.app.Service#onStartCommand 796 onStartCommand()} ( {@link android.content.Context#startService startService()} ) 797 {@link android.app.Service#onBind onBind()} ( 798 {@link android.content.Context#bindService bindService()} ).</p> 799 800 <p> <a href="{@docRoot}guide/components/bound-services.html"> </a> . {@link android.app.Service#onRebind onRebind()} 801 <a href="{@docRoot}guide/components/bound-services.html#Lifecycle"> 802 </a> 803 .</p> 804 805 806 <!-- 807 <h2>Beginner's Path</h2> 808 809 <p>To learn how to query data from the system or other applications (such as contacts or media 810 stored on the device), continue with the <b><a 811 href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a></b> 812 document.</p> 813 --> 814