Introduction

In this article I will describe services in Android. A service is an application component that is run in the background without user interaction. If we want to add a service to our application then we must add a declaration in the "AndroidManifest.xml" file and the service class must be extended. In this article, I will tell you how to play music in the background using a service. In this article, I took a MP3 song file that must play using a service in the app.
Step 1
As usual first of all create a new project as "File" -> "New" -> "Android application Project".
NwPrjct.xml.jpg
Step 2
After that, import an audio file; I imported a MP3 file in my app as shown in the following image.
radha.jpg
Step 3
Now open the "actiivity_main.xml" file and update it with the following code:
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context=".MainActivity"
  6. android:background="#0ff0ff" >
  7. <TextView
  8. android:id="@+id/song"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_alignParentBottom="true"
  12. android:layout_alignParentLeft="true"
  13. android:layout_alignParentRight="true"
  14. android:layout_marginBottom="208dp"
  15. android:background="#f00f00"
  16. android:gravity="center"
  17. android:textSize="40sp"
  18. android:text="@string/play"
  19. android:textColor="#00f00f" />
  20. </RelativeLayout>
Step 4
Now open the "MainActivity.java" file and update it with the following code.
  1. package com.demo.service;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.Menu;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.TextView;
  9. public class MainActivity extends Activity {
  10. Intent intent;
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_main);
  15. final TextView tv= (TextView) findViewById(R.id.song);
  16. intent=new Intent(this,MyService.class);
  17. tv.setOnClickListener(new OnClickListener() {
  18. @Override
  19. public void onClick(View v) {
  20. // TODO Auto-generated method stub
  21. tv.setText(R.string.playsongs);
  22. startService(intent);
  23. }
  24. });
  25. }
  26. @Override
  27. protected void onPause() {
  28. // TODO Auto-generated method stub
  29. stopService(intent);
  30. super.onPause();
  31. }
  32. @Override
  33. public boolean onCreateOptionsMenu(Menu menu) {
  34. // Inflate the menu; this adds items to the action bar if it is present.
  35. getMenuInflater().inflate(R.menu.activity_main, menu);
  36. return true;
  37. }
  38. }
Step 5
Create a new Java file extending the Service as "src/com.demo.service/MyService.java" and update it with the following code:
  1. package com.demo.service;
  2. import java.io.IOException;
  3. import android.app.Service;
  4. import android.content.Intent;
  5. import android.media.MediaPlayer;
  6. import android.os.IBinder;
  7. public class MyService extends Service {
  8. MediaPlayer media;
  9. @Override
  10. public IBinder onBind(Intent intent) {
  11. // TODO Auto-generated method stub
  12. return null;
  13. }
  14. @Override
  15. public void onCreate() {
  16. // TODO Auto-generated method stub
  17. super.onCreate();
  18. }
  19. @Override
  20. public int onStartCommand(Intent intent, int flags, int startId) {
  21. media=MediaPlayer.create(this, R.raw.radha);
  22. try {
  23. media.prepare();
  24. } catch (IllegalStateException e) {
  25. // TODO Auto-generated catch block
  26. e.printStackTrace();
  27. } catch (IOException e) {
  28. // TODO Auto-generated catch block
  29. e.printStackTrace();
  30. }
  31. media.start();
  32. // TODO Auto-generated method stub
  33. return super.onStartCommand(intent, flags, startId);
  34. }
  35. @Override
  36. public void onDestroy() {
  37. // TODO Auto-generated method stub
  38. media.release();
  39. super.onDestroy();
  40. }
  41. }
Step 6
Now open the "/androidManifest.xml" file and update it with the service in the application as in the following code:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.demo.service"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6. <uses-sdk
  7. android:minSdkVersion="8"
  8. android:targetSdkVersion="17" />
  9. <application
  10. android:allowBackup="true"
  11. android:icon="@drawable/ic_launcher"
  12. android:label="@string/app_name"
  13. android:theme="@style/AppTheme" >
  14. <activity
  15. android:name="com.demo.service.MainActivity"
  16. android:label="@string/app_name" >
  17. <intent-filter>
  18. <action android:name="android.intent.action.MAIN" />
  19. <category android:name="android.intent.category.LAUNCHER" />
  20. </intent-filter>
  21. </activity>
  22. <service android:name="MyService">
  23. </service>
  24. </application>
  25. </manifest>
Step 7
Click on "Play" and listen to the song "radha.mp3". Here if you click on the text "Play" then the song will play and if you click on the text "Pause" then the song will stop due to the service stopping.
Play
play_tv.xml.jpg
Pause
pause_tv.xml.jpg