8 Android Services
8 Android Services
8 Android Services
Android - Services
Advertisements
1 Started
2 Bound
A service has life cycle callback methods that you can implement to monitor changes in the
service's state and you can perform work at the appropriate stage. The following diagram
on the left shows the life cycle when the service is created with startService() and the
diagram on the right shows the life cycle when the service is created with bindService():
(image courtesy : android.com )
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
Accept
Learn more
https://www.tutorialspoint.com/android/android_services.htm 1/9
5/14/2019 Android Services
To create an service, you create a Java class that extends the Service base class or one of
its existing subclasses. The Service base class defines various callback methods and the
most important are given below. You don't need to implement all the callbacks methods.
However, it's important that you understand each one and implement those that ensure
your app behaves the way users expect.
1 onStartCommand()
The system calls this method when another component, such as an activity,
requests that the service be started, by calling startService(). If you implement
this method, it is your responsibility to stop the service when its work is done,
by calling stopSelf() or stopService() methods.
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
2 onBind()
Accept
The system calls this method when another component wants to bind with the
service by calling bindService(). If you implement this method, you must
Learn more
provide an interface that clients use to communicate with the service, by
https://www.tutorialspoint.com/android/android_services.htm 2/9
5/14/2019 Android Services
returning an IBinder object. You must always implement this method, but if you
don't want to allow binding, then you should return null.
3 onUnbind()
The system calls this method when all clients have disconnected from a
particular interface published by the service.
4 onRebind()
The system calls this method when new clients have connected to the service,
after it had previously been notified that all had disconnected in its
onUnbind(Intent).
5 onCreate()
The system calls this method when the service is first created using
onStartCommand() or onBind(). This call is required to perform one-time set-
up.
6 onDestroy()
The system calls this method when the service is no longer used and is being
destroyed. Your service should implement this to clean up any resources such
as threads, registered listeners, receivers, etc.
The following skeleton service demonstrates each of the life cycle methods −
package com.tutorialspoint;
import android.app.Service;
import android.os.IBinder;
import android.content.Intent;
import android.os.Bundle;
https://www.tutorialspoint.com/android/android_services.htm 3/9
5/14/2019 Android Services
/** Called when The service is no longer used and is being destroyed */
@Override
public void onDestroy() {
}
}
Example
This example will take you through simple steps to show how to create your own Android
Service. Follow the following steps to modify the Android application we created in Hello
World Example chapter −
Step Description
1 You will use Android StudioIDE to create an Android application and name it as My
Application under a package com.example.tutorialspoint7.myapplication as explained in
the Hello World Example chapter.
https://www.tutorialspoint.com/android/android_services.htm 4/9
5/14/2019 Android Services
6 No need to change any constants in res/values/strings.xml file. Android studio take care
of string values
7 Run the application to launch Android emulator and verify the result of the changes
done in the application.
Following is the content of the modified main activity file MainActivity.java. This file can
include each of the fundamental life cycle methods. We have added startService() and
stopService() methods to start and stop the service.
package com.example.tutorialspoint7.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
Following is the content of MyService.java. This file can have implementation of one or
more methods associated with Service based on requirements. For now we are going to
We use cookies
implement onlyto two
provide and improve
methods our services. By using
onStartCommand() and our site, you consent
onDestroy() − to our Cookies Policy.
package com.example.tutorialspoint7.myapplication;
Accept
import android.app.Service;
import android.content.Intent;
import android.os.IBinder; Learn more
import android.support.annotation.Nullable;
https://www.tutorialspoint.com/android/android_services.htm 5/9
5/14/2019 Android Services
import android.widget.Toast;
/**
* Created by TutorialsPoint7 on 8/23/2016.
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// Let it continue running until it is stopped.
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
}
}
Following will the modified content of AndroidManifest.xml file. Here we have added
<service.../> tag to include our service −
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
https://www.tutorialspoint.com/android/android_services.htm 6/9
5/14/2019 Android Services
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Example of services"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="30dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point "
android:textColor="#ff87ff09"
android:textSize="30dp"
android:layout_above="@+id/imageButton"
android:layout_centerHorizontal="true"
android:layout_marginBottom="40dp" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:src="@drawable/abc"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:text="Start Services"
android:onClick="startService"
android:layout_below="@+id/imageButton"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop Services"
android:id="@+id/button"
android:onClick="stopService"
android:layout_below="@+id/button2"
android:layout_alignLeft="@+id/button2"
We useandroid:layout_alignStart="@+id/button2"
cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
android:layout_alignRight="@+id/button2"
android:layout_alignEnd="@+id/button2" />
Accept
</RelativeLayout>
Learn more
https://www.tutorialspoint.com/android/android_services.htm 7/9
5/14/2019 Android Services
Let's try to run our modified Hello World! application we just modified. I assume you had
created your AVD while doing environment setup. To run the app from Android studio,
open one of your project's activity files and click Run icon from the tool bar. Android
Studio installs the app on your AVD and starts it and if everything is fine with your set-up
and application, it will display following Emulator window −
Now to start your service, let's click on Start Service button, this will start the service and
as per our programming in onStartCommand() method, a message Service Started will
appear on the bottom of the the simulator as follows −
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
Accept
Learn more
https://www.tutorialspoint.com/android/android_services.htm 8/9
5/14/2019 Android Services
To stop the service, you can click the Stop Service button.
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
Privacy Policy Cookies Policy Contact
© Copyright 2019. All Rights Reserved.
Accept
https://www.tutorialspoint.com/android/android_services.htm 9/9