Home » Android » Starting background service when Android turns on

Starting background service when Android turns on

Posted by: admin June 15, 2020 Leave a comment


I need to have ALWAYS a background service that will synchronize my Android application and a server. I know how to launch it through my application, but when the Android turns off, then the background service will die.

How can I do to keep the background service always running? (Even when the device turns off and then turns on…)

I need to add to the starts programs of Android my background service. Any hints?

How to&Answers:

use <action android:name="android.intent.action.BOOT_COMPLETED" /> for starting your service when the device turns on.

In AndroidManifest.xml:

 <receiver android:name=".BootBroadcastReceiver" >   
                <action android:name="android.intent.action.BOOT_COMPLETED" />   

Add permission in your AndroidManifest.xml as:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">

In code part BootBroadcastReceiver:

public class BootBroadcastReceiver extends BroadcastReceiver {     
    static final String ACTION = "android.intent.action.BOOT_COMPLETED";   
    public void onReceive(Context context, Intent intent) {   
        // BOOT_COMPLETED” start Service    
        if (intent.getAction().equals(ACTION)) {   
            Intent serviceIntent = new Intent(context, StartOnBootService.class);       

EDIT: if you are talking about device screen on/off then you need to register <action android:name="android.intent.action.USER_PRESENT" /> and <action android:name="android.intent.action.SCREEN_ON" /> for starting your service when user is present or screen is on.


(Even when the device turns off and then turns on..

The OS broadcasts ACTION_BOOT_COMPLETED when it has finished booting. Your app can ask to receive this notification by requesting permission in your manifest:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">