This tutorial will explain to stat an application while the Android device boot-up. For this we need to  listen to the BOOT_COMPLETED action and react to it. BOOT_COMPLETED is a Broadcast Action that is broadcast once, after the system has finished booting. You can listen to this action by creating a BroadcastReceiver that then starts your launch Activity when it receives an intent with the BOOT_COMPLETED action.

1. Add this permission to your manifest:

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

How to Start an Application at Device Bootup in Android

2. Create a Custom BroadcastReceiver in your project to receive boot up event

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class BootReceiver extends BroadcastReceiver{

	public void onReceive(Context context, Intent intent) {
		Intent i = new Intent(context, MainActivity.class);  

3. Adding the BroadCastReceiver to the Android Manifest

android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />

Install the application, and then restart the device. You can see the application will start after the device restarts.


A blogger, a bit of tech freak and a software developer. He is a thought leader in the fusion of design and mobile technologies. He is the author of Xamarin Mobile Application Development for Android Book (, DZone MVB and founder of


Please note: We reserve the right to delete comments that contains snarky remarks, offensive or off-topic. To know more read our comments policy.
  • Pritesh Patel

    i used complete code in android studio .. but after restarting application nothing happen…

  • Fruxinfo Private Limited

    but that function not working Redmi Note 3
    how can sol

  • Danish

    Hii guys please check my code i have been trying to run but boot receiver is not responding how ever i try

    My Boot Receiver

    public class BootReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    if (intent.getAction().equals(“android.intent.action.BOOT_COMPLETED”)) {
    Intent i = new Intent();
    i.setClassName(“com.talentcodeworks.callrecorder”, “com.talentcodeworks.callrecorder.callrecorder”);

    I cannot figure it out why is this not working on my vivo android version 5.0

  • gretar

    This was awesome. Those two lines were missing and driving me crazy! Thanks a lot!!!


  • TominoCZ

    I’ve been looking for this for over a month and I finally found a working solution!
    Thanks to whoever made this tutorial!

  • Federico Capece

    This helped me a lot, thanks