Question

I have a BootUpReceiver class which I'm attempting to use with RECEIVE_BOOT_COMPLETED to launch an Activity when the device boots. The problem is - it does not seem to do so when I launch the app then restart the device.

I have verified there is no issue running Activity1.java - the issue lies either in the Manifest or the BootUpReceiver class but I'm not sure exactly why it will not launch after rebooting.

BootUpReceiver.java:

public class BootUpReceiver extends BroadcastReceiver{


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

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

 }
}



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.com.idg.voiscphone"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.idg.voiscphone.Activity1"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

           <activity
            android:name="com.idg.voiscphone.Activity2"
            android:label="@string/app_name" >
        </activity>
          <activity
            android:name="com.idg.voiscphone.Activity3"
            android:label="@string/app_name" >
        </activity>
              <activity
            android:name="com.idg.voiscphone.Activity3a"
            android:label="@string/app_name" >
        </activity>
              <activity
            android:name="com.idg.voiscphone.Activity3b"
            android:label="@string/app_name" >
        </activity>
       <receiver android:enabled="true" android:name=".BootUpReceiver"
        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>

</manifest>

Example Source:

http://androidrocksonmobility.blogspot.com/2012/01/how-to-create-auto-start-android.html

Was it helpful?

Solution

Remove android:permission="android.permission.RECEIVE_BOOT_COMPLETED" and try again.

Beyond that, there is no requirement that your activity appear in front of any other activity that might be started around the same time, such as the home screen.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top