از اندروید 3.1 تمام برنامه هایی که حداقل یک بار اجرا نشده اند، intent  ها را دریافت نمی کنند و BroadcastReceiver های آنها exclude می شود. پس شما حداقل نیاز به یک activity دارید که باهاش حداقل یکبار برنامه رو اجرا کنید. پس از بار اول می توانید BroadcastReceiver خود را برای دریافت intent مربوط به کامل شدن boot سیستم تنظیم کنید که در صورت reset شدن موبایل سرویس شما مجددا اجرا شود:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.javabyab.broadcastreceiver"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name">
        <receiver
            android:name=".MyReceiver"
            android:enabled="true"
            android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service
            android:name=".MyService"
            android:enabled="true"
            android:exported="true" >
        </service>
    </application>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
</manifest>
	BroadcastReceiver شما هم چیزی شبیه این می شود:
public class MyReceiver extends BroadcastReceiver {
    public MyReceiver() {
    }
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("test-saeed","------------receive boot");
        // use this to start and trigger a service
        Intent i= new Intent(context, MyService.class);
        // potentially add data to the intent
        context.startService(i);
    }
}