Salve a tutti. Sto sviluppando un app in android. Sto cercando di implementare le notifiche. Il funzionamento a grandi linee è i seguente. L'utente inserisce una lista di orari, ogni orario lo registro in un Db SqLite, Ogni orario lo aggiungo al mio AlarmManager, e ho un Broadcast receiver che mi genera le notifiche.
Questo è il metodo che mi inserisce gli orari nel AlarmManager
Mentre questo è il BroadcastReceivercodice:private void restartNotify() { AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); am.cancel(pendingIntent); ArrayList<String> item = new ArrayList<String>(); item = GetLists.GetTimesListForNotification(this); for (int i = 0; i < item.size(); ++i) { String time = item.get(i); int Position = time.indexOf(":"); int hour = Integer.parseInt(time.substring(0, Position)); int min = Integer.parseInt(time.substring(Position + 1)); Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, hour); cal.set(Calendar.MINUTE, min); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); am.set(AlarmManager.RTC, cal.getTimeInMillis(), pendingIntent); }
Le notifiche vengono generato soltanto quando apro l'applicazione. Quindi non segue gli orari inseriti.codice:public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { NotificationManager mManager; mManager = (NotificationManager) context.getApplicationContext() .getSystemService( context.getApplicationContext().NOTIFICATION_SERVICE); Intent intent1 = new Intent(context.getApplicationContext(), MainActivity.class); Notification notification = new Notification(R.drawable.ic_launcher, "Nuovo messaggio da cura alert", System.currentTimeMillis()); intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingNotificationIntent = PendingIntent.getActivity( context.getApplicationContext(), 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT); notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.setLatestEventInfo(context.getApplicationContext(), "Le notifiche funzionano", "Dai cazzoooooo", pendingNotificationIntent); mManager.notify(0, notification); } }
Avete qualche consiglio?

Rispondi quotando
