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) or cmd + shift + ] (move right) ( W

Android Application Components Activities, Services, Broadcast Recievers, Content Providers - ABNHive

Application components are the essential building blocks of Android app development.  Each component is an entry point through which the system or a user can enter your app. There are 4 types of components in android Activities Services Broadcast receivers Content providers Let's dive into the deep.  Activities This is a component that represents a single screen with a user interface or simply an entry point for interacting with the user. Example, an email app might have one activity that shows a list of new emails. Activities work together to form a cohesive user experience in the app. For example, clicking a button on the first screen might replace that screen with another screen containing other widgets, a web page, a movie, or text information. Activities are typically created by subclassing (extending) the Android class Activity.  click here   to know more about Activity. Services This runs in the background to perform work for remote processes or

Linear Layout in Android - ABNHive

Linear Layout arranges other views either horizontally in a single column or vertically in a single row. It arranges its elements sequentially Attributes android: orientation —Used for arranging the controls in the container in horizontal or vertical order android:layout_width —Used for defining the width of a control android:layout_height —Used for defining the height of a control android:padding —Used for increasing the whitespace between the boundaries of the control and its actual content android:layout_weight —Used for shrinking or expanding the size of the control to consume the extra space relative to the other controls in the container android:gravity —Used for aligning content within a control android:layout_gravity —Used for aligning the control within the container Example <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_widt