|  | <p> | 
|  | This sample is a revised version of the AlarmService functionality included in the | 
|  | ApiDemos sample application. It is used as the application under test | 
|  | for the <a href="../AlarmServiceTest/index.html">Alarm Service Test</a> | 
|  | sample test application. | 
|  | </p> | 
|  | <p> | 
|  | This application demonstrates a simple Android service that is started when needed by | 
|  | <code>Context.startService(Intent)</code> and stops itself when its work is done. You can | 
|  | use this type of service to move long-running or periodic tasks into the background. For | 
|  | example, you could use this type of service to perform data synchronization. | 
|  | </p> | 
|  | <p> | 
|  | In the sample, the service simply runs for 15 seconds and then stops itself. The wait is | 
|  | implemented in a separate thread that uses a thread-safe object. This illustrates how to | 
|  | set up a service that runs multiple threads that depend on one or more objects that must be | 
|  | made thread-safe. | 
|  | </p> | 
|  | <p> | 
|  | The application also contains the <code>AlarmActivity</code> activity that is a client of the | 
|  | service. You use the activity to control when the service starts and stops. By default, the | 
|  | activity fires off the service every thirty seconds. In effect, the service starts after | 
|  | thirty seconds, runs for 15 seconds, stops, and then runs again automatically in another | 
|  | 15 seconds. You also use the client to stop this cycle. | 
|  | </p> | 
|  | <p> | 
|  | The test application <a href="tests/index.html">AlarmServiceTest</a> | 
|  | shows you how to set up a test of this service. | 
|  | </p> |