Skip to main content

Services in Android - ABNHive

A service is a component which runs in the background without direct interaction with the user.  A service extends the base class Service.

Services in Android - ABNHive


Services run with a higher priority than inactive or invisible activities and therefore it is less likely that the Android system terminates them for resource management. The only reason Android will stop a Service prematurely is to provide additional resources for a foreground component usually an Activity. When this happens, your Service can be configured to restart automatically.

You can start a service if it is not running using Context.startService(), connect (bind) to a running service using Context.bindService(), and communicate with the running service through an interface that the service exposes. Each service class must have a corresponding <service> declaration in the AndroidManifest.xml file for its package.

Types of Services

Bound Service
Service which call indefinitely in between activity. An Android component may bind itself to a Service using bindservice (). A bound service would run as long as the other application components are bound to it. As soon as they unbind, the service destroys itself.

Unbound Service
Service which call at the life span of calling activity. In this case, an application component starts the service, and it would continue to run in the background, even if the original component that initiated it is destroyed. For instance, when started, a service would continue to play music in the background indefinitely.

Services in Android - ABNHive
Services Life cycle

Methods in Activity Class.

Every Service has Methods which we can override. 

  • onStartCommand() - We can't call this method directly. This method called by System every time the client explicitly calling Context.startService(Intent) to start the service.  
  • onBind() -  You must always implement this method. If you implement this method, you must provide an interface that clients use to communicate with the service, by returning an IBinder object. The system calls this method when another component wants to bind with the service by calling bindService(). If you don't want to allow binding, then you should return null.
  • onUnbind() - System calls this method when all clients have disconnected from a particular interface published by the service.
  • onRebind() - 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).
  • onCreate()  - This method call is a one-time set-up. System calls this method when the service is first created using onStartCommand() or onBind().
  • onDestroy() - This method used to destroy useless services. Your service should implement this to clean up any resources such as threads, registered listeners, receivers, etc.



package com.abnhive;

import android.app.Service;
import android.os.IBinder;
import android.content.Intent;
import android.os.Bundle;

public class MyService extends Service {
   
   int mStartMode;
   
   IBinder mBinder;     
   
   boolean mAllowRebind;

   @Override
   public void onCreate() {
     
   }

   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
      return mStartMode;
   }

   @Override
   public IBinder onBind(Intent intent) {
      return mBinder;
   }

   @Override
   public boolean onUnbind(Intent intent) {
      return mAllowRebind;
   }

   @Override
   public void onRebind(Intent intent) {

   }

   @Override
   public void onDestroy() {

   }
}

 

Comments

Popular posts from this blog

Shortcuts in Android Studio for Android Developers - ABNHive

I hope these shortcuts will definitely help you to increase the productivity level. Search for command: cmd + shift + a ( Windows / Linux : ctrl +  shift + a) You just type: close and you’ll get a proper shortcut/command. Choose from the last copy / pastes : cmd +  shift  + v ( Windows / Linux : Ctrl + Shift + v). By default, there are 5 last copy/paste items. Enable mulmulti cursorature: ctrl + g (alt + j for Windows / Linux ). Open a class: cmd + o ( Windows / Linux : ctrl + n). Open any file: cmd + shift + o ( Windows / Linux : ctrl + shift + n) Open symbol:  cmd + option + o ( Windows / Linux : alt + shift + n). Go to implementation: cmd + option + b ( Windows / Linux : ctrl + alt + b). Go to declaration: cmd + b ( Windows / Linux : ctrl + b).  Go to type declaration: control + shift + b ( Windows / Linux : ctrl + shift + b).  Go to super: cmd + u ( Windows / Linux : ctrl + u).  Move between tabs: cmd + shift + [ (move left) o...

Essential Guide to Setting up Emulators- ABNHive

An Android emulator is an Android Virtual Device (AVD) that represents a specific Android device. You can use an Android emulator as a platform to run and test your applications on your PC. Installing Emulator on PC Steps are given below Open SDK Manager from Android Studio, click Tools > SDK Manager. Click SDK Tools section Click to tick Android Emulator and Intel x86 Emulator Accelerator - HAXM Installer (If available) Click OK Button Wait to complete download It will automatically download Android Emulator Creating AVD After downloading the Emulator we need to Create AVD (Android Virtual Device).  Click  Tools > AVD Manager. Click Create New Virtual Device Icon Now choose device  If a download option is there, just click to download Device Image Configure Device Now Android Studio creates AVD Click the green icon to run Emulator - Aswin Bhim Nath