Frage

Ich habe eine Anwendung mit einem Alarmsystem, das einwandfrei funktioniert, und ich kopiere alle 5 Klassen und ändere nur den Datenbanknamen, aber es funktioniert nicht. Ich kann Ihnen den gesamten Code übergeben, möchte aber hören, ob jemand so etwas hatte Das vorher.

wie ich new ReminderManager(this).setReminder(mRowId,mCalendar); aufrufe;

Die Zeilen-ID ist voll (irgendeine Zahl) und der mCalendar (hat ein Datum, das ich mit dem Datum aus dem McKalender der anderen App vergleiche, die ich habe, und es hat das gleiche Format) und wenn ich das aufrufe, läuft alles so, wie es sollte, es erstellt das ausstehende Absicht

public void  setReminder(Long taskId, Calendar when)
{
    Intent i= new Intent(mContext,OnAlarmReciver.class);
    i.putExtra(DatabaseIN.KEY_ROWID,(long)taskId);


    PendingIntent pi=PendingIntent.getBroadcast(mContext,0, i, PendingIntent.FLAG_ONE_SHOT);
    mAlarmManager.set(AlarmManager.RTC_WAKEUP,when.getTimeInMillis(),pi);

}
after this nothing happens... can anyone help
War es hilfreich?

Lösung

Versuchen Sie, Ihr Projekt zu reinigen-> sauber zu reinigen, und wenn dies nicht bilde, ein neues Projekt zu erstellen und die Clasen noch einmal zu schreiben. Das funktionierte für mich: d

Andere Tipps

Vielleicht when noch nicht geschehen ist (zu weit in der Zukunft) oder bereits geschehen ist (liegt in der Vergangenheit vor Ihrem Anruf). set()).

Oder vielleicht haben Sie das nicht OnAlarmReceiver in Ihrem Manifest definiert.

piecingintent.gettbroadcast wird ein passendes Pendingintent wiederverwenden, so hat es vielleicht das anstehende Absicht abgefeuert (z. B. möglicherweise aus dem von Ihnen kopierten Code), und da Sie eine flag_one_shot-Flagge verwenden, wird es nur ein Feuer feuernEinmal.

Schneller Test ist das Entfernen des flag_one_shot-Flags und sehen Sie, ob es feuert.Wenn das das Problem ist, verwenden Sie einfach einen anderen Anforderungscode im PendingItent.Getbroadcast.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top