![Page 1: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/1.jpg)
BROADCAST RECEIVER SERVICE
![Page 2: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/2.jpg)
Broadcast receiver • A broadcast receiver is a dormant component of the Android
system.
• Only an Intent (for which it is registered) can bring it into action.
Using a Broadcast Receiver, applications can register for a • Using a Broadcast Receiver, applications can register for a particular event. Once the event occurs, the system will notify all the registered applications.• Examples: Boot completed, Time tick
• The Broadcast Receiver’s job is to activate some swcomponent, for example to notify the end user something occurred.
![Page 3: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/3.jpg)
Registering a receiver• There are two ways to register a Broadcast Receiver; one
is Static and the other Dynamic.• Static:
• Use <receiver> tag in your Manifest file. (AndroidManifest.xml)• Not all events can be registered statically• Not all events can be registered statically• Some events require permission
• Dynamic:• Use Context.registerReceiver () method to dynamically register an
instance.• Note: Unregister when pausing
![Page 4: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/4.jpg)
Type of broadcasts• Ordered Broadcasts:
• These broadcasts are synchronous and follows the order specified using android: priority attribute.
• The receivers with greater priority would receive the broadcast first.
• Normal Broadcasts:• Normal broadcasts are not orderly.
![Page 5: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/5.jpg)
Simple example• An activity creates a broadcast receiver that subscribes
dynamically for TIME_TICK events (fired every minute)
• The receiver is registered to the event when the activity is startedstarted
• The receiver is unregistered when the hosting activity is paused.
![Page 6: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/6.jpg)
Simple exampe
Creates the receiver
Register the receiver Register the receiver to receive time ticks…
Unregister the receiver when paused
![Page 7: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/7.jpg)
Simple example
Good tutorial:http://www.grokkingandroid.com/android-tutorial-broadcastreceiver/
![Page 8: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/8.jpg)
Service• A Service is an application component representing either
an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use.
• A service is managed by android and has its own lifecycle
• For example, a broadcast receiver can use a service when something occurs.
![Page 9: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/9.jpg)
Service type• Intent Service
• Simplest form of service• Created to execute a task in a separate thread and then exit
• Service • Service • Started Service
• Run until explicitly stopped (in the rare case android needs to kill it, the service will be restarted as soon as possible)
• Started with startCommand method
• Bound Service • Allows the exchange data with the interacting software component
through an interface (set of methods)• Bind to a service interface
![Page 10: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/10.jpg)
Intent Service: example
MainActivity
IntentService
Explicit Intent
• The service needs to be registered in the manifest file• The main activity creates an explicit intent pointing to the service • The service is started and the onHandleIntent method executed• Intents are queued and served serially
![Page 11: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/11.jpg)
Intent Service: example
![Page 12: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/12.jpg)
Example• Testing the weather condition periodically and send a
notification if an alarm occurs
Time tick event
BroadcastReceiver
Intent Service
If allarm User Notification
Start
Time tick event
![Page 13: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/13.jpg)
Started and bound service• Any application component can use a service (even from
a separate application), in the same way that any component can use an activity—by starting it with an Intent.
• To create a service, you must create a subclass of Service and override some callback methods that handle key aspects of the service lifecycle• Started services do not provide a programmatic interface to the
client• Bound services do provide an interface
![Page 14: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/14.jpg)
Started service: example, playing music
Service
Main Thread Play threadProcess
• An application that runs a player to play a song…
• The service is started from the Activity and then it spawns a thread
UI Activity
![Page 15: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/15.jpg)
Example: playing music
![Page 16: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/16.jpg)
Example: playing music
![Page 17: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/17.jpg)
Main methods• onStartCommand()
• The system calls this method when another component, such as an activity, requests that the service be started, by calling startService().
• onBind()• The system calls this method when another component wants to
bind with the service (such as to perform RPC), by calling bindService(). Return null if no bounds are required
![Page 18: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/18.jpg)
Bound Service – a short intro• A service can be bounded to another SW component, meaning that it
can invoke methods implemented by the service through a proxy (Binder) of the Service (which is seen as a remote object)
• Service connection is an interface monitoring connections to a service
Activity Service
Binder
ServiceConnection
Represents the service
creates the binder
![Page 19: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/19.jpg)
Bound service • To create a bound service, you must implement the
onBind() callback method to return an IBinder that defines the interface for communication with the service.
• Other application components can then call bindService()• Other application components can then call bindService()to retrieve the interface and begin calling methods on the service. • The client can even call public methods defined in the service (see
example)
![Page 20: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/20.jpg)
Example
![Page 21: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/21.jpg)
Example•
Interface: monitor the state of the serviceLocal
representation state of the service
representation of the remote service
![Page 22: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/22.jpg)
Example
Retrieve the Retrieve the interface to the service
![Page 23: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/23.jpg)
Example
automatically create the service as long as the binding exists.
![Page 24: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/24.jpg)
System-level services• The Android platform provides a lot of pre-defined
services, usually exposed via a Manager class, see:• http://developer.android.com/reference/android/content/Context.ht
ml
• For example the next applications provides info about the • For example the next applications provides info about the currently connected network….
![Page 25: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/25.jpg)
Example
![Page 26: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/26.jpg)
Controlling Destroyed Service restart Options
![Page 27: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/27.jpg)
Service priority
• The system kills the process hosting a service if it is under heavy memory pressure.
• However, if this happens, the system will later try to restart • However, if this happens, the system will later try to restart the service (and a pending intent can be delivered again)
• A processes hosting service have higher priority than those running an activity
![Page 28: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/28.jpg)
Example: use notification • Send a message, displayed by the status bar• Read the message associated to the notification
![Page 29: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/29.jpg)
Example: UI
Background color
Adapted from : Victor Matos CS493
![Page 30: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/30.jpg)
Example: UI
![Page 31: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/31.jpg)
Example
![Page 32: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/32.jpg)
Example: create a notification
See next slide
![Page 33: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/33.jpg)
Example: cancel a notification
NotifyHelper
![Page 34: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/34.jpg)
Running the applicationTicker Tape Text Icon (star) of the notification
![Page 35: BROADCAST RECEIVER SERVICE - uniroma1.itberaldi/PSD_013/Services.pdf · • A broadcast receiver is a dormant component of the Android ... Good tutorial:](https://reader031.vdocuments.site/reader031/viewer/2022020315/5ac5459f7f8b9af91c8d8573/html5/thumbnails/35.jpg)
Running the application
Activity launched through intent
Extendedinformation