Blog purpose for android basic example for android app developer. any query please my contact

Sunday, 20 August 2023

what is service in android and its types example

 what is service in android and its types example


Android service is a component that is used to perform operations on the background such as playing music, handle network transactions, interacting content providers etc. It doesn't has any UI (user interface). The service runs in the background indefinitely even if application is destroyed.



How many types of service are there in Android?

Services in Android

two different types

There are two different types of service lifecycle in Android. Started Service: When an application component calls startService() then service will start. This type of service does not return any result and performs only a single operation.



Life Cycle of Android Service

There can be two forms of a service.The lifecycle of service can follow two different paths: started or bound.


Started

Bound

1) Started Service

A service is started when component (like activity) calls startService() method, now it runs in the background indefinitely. It is stopped by stopService() method. The service can stop itself by calling the stopSelf() method.


2) Bound Service

A service is bound when another component (e.g. client) calls bindService() method. The client can unbind the service by calling the unbindService() method.



1. activity_main.xml:


<?xml version="1.0" encoding="utf-8"?>  

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  

    xmlns:app="http://schemas.android.com/apk/res-auto"  

    xmlns:tools="http://schemas.android.com/tools"  

    android:layout_width="match_parent"  

    android:layout_height="match_parent"  

    tools:context=".MainActivity">  

  

  

    <Button  

        android:id="@+id/buttonStart"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_alignParentTop="true"  

        android:layout_centerHorizontal="true"  

        android:layout_marginTop="74dp"  

        android:text="Start Service" />  

  

    <Button  

        android:id="@+id/buttonStop"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_centerHorizontal="true"  

        android:layout_centerVertical="true"  

        android:text="Stop Service" />  

  

    <Button  

        android:id="@+id/buttonNext"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_alignParentBottom="true"  

        android:layout_centerHorizontal="true"  

        android:layout_marginBottom="63dp"  

        android:text="Next Page" />  

</RelativeLayout>  



2. activity_next.xml:


<?xml version="1.0" encoding="utf-8"?>  

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  

    xmlns:app="http://schemas.android.com/apk/res-auto"  

    xmlns:tools="http://schemas.android.com/tools"  

    android:layout_width="match_parent"  

    android:layout_height="match_parent"  

    tools:context="NextPage">  

  

    <TextView  

        android:id="@+id/textView"  

        android:layout_width="wrap_content"  

        android:layout_height="wrap_content"  

        android:layout_marginEnd="8dp"  

        android:layout_marginStart="8dp"  

        android:layout_marginTop="200dp"  

        android:text="Next Page"  

        app:layout_constraintEnd_toEndOf="parent"  

        app:layout_constraintStart_toStartOf="parent"  

        app:layout_constraintTop_toTopOf="parent" />  

</android.support.constraint.ConstraintLayout>  




3. MyService.java:



import android.app.Service;  

import android.content.Intent;  

import android.media.MediaPlayer;  

import android.os.IBinder;  

import android.support.annotation.Nullable;  

import android.widget.Toast;  

  

public class MyService extends Service {  

    MediaPlayer myPlayer;  

    @Nullable  

    @Override  

    public IBinder onBind(Intent intent) {  

        return null;  

    }  

    @Override  

    public void onCreate() {  

        Toast.makeText(this, "Service Created", Toast.LENGTH_LONG).show();  

  

        myPlayer = MediaPlayer.create(this, R.raw.sun);  

        myPlayer.setLooping(false); // Set looping  

    }  

    @Override  

    public void onStart(Intent intent, int startid) {  

        Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();  

        myPlayer.start();  

    }  

    @Override  

    public void onDestroy() {  

        Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();  

        myPlayer.stop();  

    }  

}  



4. MainActivity.java:


import android.content.Intent;  

import android.support.v7.app.AppCompatActivity;  

import android.os.Bundle;  

import android.view.View;  

import android.widget.Button;  

  

public class MainActivity extends AppCompatActivity implements View.OnClickListener{  

    Button buttonStart, buttonStop,buttonNext;  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_main);  

  

        buttonStart = findViewById(R.id.buttonStart);  

        buttonStop = findViewById(R.id.buttonStop);  

        buttonNext =  findViewById(R.id.buttonNext);  

  

        buttonStart.setOnClickListener(this);  

        buttonStop.setOnClickListener(this);  

        buttonNext.setOnClickListener(this);  

  

  

    }  

    public void onClick(View src) {  

        switch (src.getId()) {  

            case R.id.buttonStart:  

  

                startService(new Intent(this, MyService.class));  

                break;  

            case R.id.buttonStop:  

                stopService(new Intent(this, MyService.class));  

                break;  

            case R.id.buttonNext:  

                Intent intent=new Intent(this,NextPage.class);  

                startActivity(intent);  

                break;  

        }  

    }  

}  


5. NextPage.java:


import android.support.v7.app.AppCompatActivity;  

import android.os.Bundle;  

  

public class NextPage extends AppCompatActivity {  

  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_next);  

    }  

}  




6. manifest.xml:



<?xml version="1.0" encoding="utf-8"?>  

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  

    package="example.akash.com.androidservice">  

  

    <application  

        android:allowBackup="true"  

        android:icon="@mipmap/ic_launcher"  

        android:label="@string/app_name"  

        android:roundIcon="@mipmap/ic_launcher_round"  

        android:supportsRtl="true"  

        android:theme="@style/AppTheme">  

        <activity android:name=".MainActivity">  

            <intent-filter>  

                <action android:name="android.intent.action.MAIN" />  

  

                <category android:name="android.intent.category.LAUNCHER" />  

            </intent-filter>  

        </activity>  

        <activity android:name=".NextPage"></activity>  

        <service  

            android:name=".MyService"  

            android:enabled="true" />  

    </application>  

  

</manifest>  

No comments:

Post a Comment