Wie stelle ich einen Alarm so ein, dass er zur festgelegten Zeit ordnungsgemäß ausgelöst wird?

Ich habe diesen Code

Calendar c = new GregorianCalendar();
        c.add(Calendar.DAY_OF_YEAR, 1);
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 22);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);

        // We want the alarm to go off 30 seconds from now.
        long firstTime = SystemClock.elapsedRealtime();
        firstTime += 30*1000;
        long a=c.getTimeInMillis();

        // Schedule the alarm!
        AlarmManager am = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
        am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                c.getTimeInMillis(), 1*60*60*1000, sender);

Es wird nicht bei @ ausgefüh 23: 22h

Was mache ich falsch? Ich bemerkte firstTime und c.getTimeInMillis () unterscheidet sich sehr in Größe und Länge. Wenn ich firstTime verwende, also auf 30 Sekunden eingestellt, wird der Alarm gut ausgeführt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage