Start activity on boot

Try this:

1] In AndroidManifest.xml file:

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

 <application 
 ...
    <receiver
        android:name=".StartMyActivityAtBootReceiver"
        android:enabled="true"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
 </application>

2] Inside BroadcastReciever class with StartMyActivityAtBootReceiver as class name.

@Override
public void onReceive(Context context, Intent intent) {

    Intent i = new Intent(context, MainActivity.class);  
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i); 

} 

This worked for me. The difference in code is as follows:

  • android:permission=”android.permission.RECEIVE_BOOT_COMPLETED” inside receiver.
  • included “category android:name=”android.intent.category.DEFAULT” ” inside intent filter.
  • I am not checking the intent in onRecieve, as i know that code will be executed only if its true

Leave a Comment