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

Join The Discussion

Please note: We reserve the right to delete comments that contains snarky remarks, offensive or off-topic. To know more read our comments policy.
  • 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