我的 AlarmManager、BroadcastReceiver 和服务没有启动

My AlarmManager, BroadcastReceiver and Service doesn't start

我似乎无法起床 运行:

    public class BackgroundSyncService extends IntentService {

    public BackgroundSyncService() {
        super("SchedulingService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Log.i("asd-service", "lol");

        BackgroundSyncBroadcastReceiver.completeWakefulIntent(intent);
    }
}

第二个class:

    public class BackgroundSyncBroadcastReceiver extends WakefulBroadcastReceiver {

    private AlarmManager alarmManager;
    private PendingIntent alarmIntent;

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

        Intent service = new Intent(context, BackgroundSyncService.class);
        startWakefulService(context, service);
    }

    public void setAlarm(Context context){

        alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(context, BackgroundSyncBroadcastReceiver.class);
        alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

        alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME,
                0, 5000, alarmIntent);

        ComponentName receiver = new ComponentName(context, BackgroundSyncBroadcastReceiver.class);
        PackageManager pm = context.getPackageManager();

        pm.setComponentEnabledSetting(receiver,
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                PackageManager.DONT_KILL_APP);
    }
}

第三个class:

public class BackgroundSyncBootReceiver extends BroadcastReceiver {

BackgroundSyncBroadcastReceiver service = new BackgroundSyncBroadcastReceiver();

@Override
public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
        service.setAlarm(context);
    }
}

}

Manifest.xml:

<receiver android:name=".BackgroundSyncBroadcastReceiver"/>

    <receiver android:name=".BackgroundSyncBootReceiver"
        android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

    <service android:name=".BackgroundSyncService"/>

在用户手动启动您的应用程序一次之前,您的 BOOT_COMPLETED 接收器将不会被允许触发。这是一项安全功能,可防止应用程序在用户不知情的情况下 运行。

所以,是的,我忘了从活动开始...

 BackgroundSyncBroadcastReceiver service = new BackgroundSyncBroadcastReceiver();
service.setAlarm(this);

愚蠢的错误。