Obudź aplikację ze snu o określonej godzinie

Chcę wysłać moją aplikację do uśpienia, a następnie obudzić ją o określonych porach. Mam to spać, ale nie budzę się.

To ustawia wakelock:

private void setWakeLock(){
    System.out.println("wakelock");
    PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
    wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |
            PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "DoNotDimScreen");
    wl.acquire();
}

Ustawia alarmy dla czasów budzenia / uśpienia:

private void setWakeSleep(){
    java.util.Calendar c = java.util.Calendar.getInstance();
    c.set(java.util.Calendar.HOUR_OF_DAY, 17);
    c.set(java.util.Calendar.MINUTE, 53);
    c.set(java.util.Calendar.MILLISECOND, 0);
    Intent sleepIntent = new Intent("SLEEP_INTENT");
    PendingIntent sleepPendingIntent = PendingIntent.getBroadcast(this, 0, sleepIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), sleepPendingIntent);

    c.set(java.util.Calendar.HOUR_OF_DAY, 18);
    c.set(java.util.Calendar.MINUTE, 14);
    c.set(java.util.Calendar.MILLISECOND, 0);
    Intent wakeIntent = new Intent("WAKE_INTENT");
    PendingIntent wakePendingIntent = PendingIntent.getBroadcast(this, 0, wakeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager2 = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager2.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), wakePendingIntent);
}

A to jest odbiornik telewizyjny:

private BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Time updateHour = new Time();
        updateHour.set(System.currentTimeMillis());         
        if (intent.getAction().equals("SLEEP_INTENT")) {
            System.out.println("sleep");
            wl.release();
        }
        if (intent.getAction().equals("WAKE_INTENT")) {         
            wl.acquire();
            System.out.println("wake");
            //initialise();
        }
    }
};

Każda pomoc jest bardzo ceniona!

questionAnswers(2)

yourAnswerToTheQuestion