ich auf Ersteinrichtung senden Probleme mit meinem app habe, dass beim ersten Start i einrichten möchten eine alarmintent und ich möchte, dass die Alarmmanager mir eine Meldung alle 24 h bei einem bestimmten Zeitpunkt zu senden. Alles daran funktioniert, außer wenn ich die App zum ersten Mal starte (wenn Daten von der App gelöscht werden), dann wird sofort eine Benachrichtigung gesendet, die es nicht tun sollte, bis die Uhr 09 das nächste Mal kommt: 00. HierAlarmmanager wird
ist die Funktion, dass das Setup der Alarm (nur das erste Mal genannt die App läuft)
public void setAlarm(){
Toast.makeText(this, "setAlarm()", Toast.LENGTH_LONG).show();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Intent alarmIntent = new Intent(this, AlertReceiver.class);
if(PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_ONE_SHOT) != null){
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
}
}
Und hier ist die Benachrichtigungsfunktion des Rundfunkempfängers
public void createNotification(Context context, String msg, String msgText, String msgAlert){
PendingIntent notificIntent = PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setSmallIcon(R.drawable.ic_stat_dmq_notification_icon);
mBuilder.setTicker(msgAlert); //Ticker!
mBuilder.setWhen(System.currentTimeMillis());
mBuilder.setContentTitle(msg); //Title:
mBuilder.setContentText(msgText); //Text
mBuilder.setContentIntent(notificIntent);
mBuilder.setDefaults(NotificationCompat.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(uniqueId, mBuilder.build());
Ich habe Ich schaue mir das seit Tagen an, und ich kann es anscheinend nicht herausfinden, noch kann ich eine Lösung finden. Wenn jemand helfen kann, wäre ich ein glücklicher Mann!
keine Notwendigkeit calendar.setTimeInMillis (System.currentTimeMillis() zu nennen;. – peter
Ja, du hast recht, aber da es nicht mein Fehler erwartet änderte –