Sto cercando da ore come fare esattamente questo:Android notifica al momento
voglio che ogni giorno (tranne il fine settimana) viene inviata una notifica alla volta (diciamo alle 18:00 (18:00 =)) tranne quando l'app è già aperta. È praticamente come l'app di Gmail quando ricevi una mail. Quando l'utente fa clic sulla notifica, dovrebbe scomparire e deve essere portato a MainActivity.
Ho provato numerose cose con AlarmManager, ma nessuna ha provocato la visualizzazione di una notifica.
Il codice ho provato, che mi sembra abbastanza vicino ad essere corretta, è la seguente: Nel mio MainActivity:
AlarmManager alarmManager = (AlarmManager) this.getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 18);
Intent intent = new Intent(this, NotificationService.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
mio NotificationService:
public class NotificationService extends IntentService {
public NotificationService() {
super("NotificationService");
}
@Override
@SuppressWarnings("deprecation")
protected void onHandleIntent(Intent intent) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "reminder", System.currentTimeMillis());
notification.defaults |= Notification.DEFAULT_SOUND;
notification.flags |= Notification.FLAG_AUTO_CANCEL;
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent , 0);
notification.setLatestEventInfo(getApplicationContext(), "It's about time", "You should open the app now", contentIntent);
nm.notify(1, notification);
}
}
Avviso Io uso roba deprecato perché questo era anche l'unico modo in cui una notifica si presentava mentre non funzionava con AlarmManager. Se possibile, ti preghiamo di reagire con una soluzione che non contiene elementi deprecati, ma con materiale aggiornato: P.
Molte molte molte grazie in anticipo !!!
Cordiali saluti
cos'è 'android: name = "be.menis.timesheet.service.AlarmReceiver" '?? Desidero impostare la notifica alle 10:00 del giorno – Neo
@ashish che è il nome del pacchetto dell'applicazione e la posizione del ricevitore –
Grazie per il codice, lo sto testando ora. Ma qualcuno sa se imposterò un nuovo allarme ogni volta che eseguirò questo codice? se è così, dovrei stare molto attento con esso ... – George