2013-05-10 13 views
10

Desidero creare una notifica ogni giorno alle 8:00. Ho alcuni dati in un database SQLite e ogni giorno in questo momento voglio ottenere i dati da esso e creare una notifica da esso. La creazione di una nuova notifica non è un problema, ma come posso visualizzarla ogni giorno in questo momento?Crea notifica ogni giorno

Penso di dover lavorare con un servizio, ma come posso dire al sistema di avviare questo servizio al momento speciale? E che tipo di servizio dovrei usare? Penso che se il sistema chiama il servizio, avvia una funzione specifica in cui posso eseguire il mio codice per connettermi al database e creare e inviare la mia notifica al sistema giusto?

Quello che non riesco a capire è se registro il servizio nella mia attività principale perché il sistema può avviare il servizio se l'utente chiude la mia app? Qualcuno può spiegarmelo? Penso sempre che se la mia attività principale viene distrutta, anche il servizio viene distrutto.

+2

Utilizzare alarmManager. – wtsang02

+0

http://stackoverflow.com/questions/4430849/how-to-set-recurring-alarmmanager-to-execute-code-daily –

+0

http://mobile.tutsplus.com/tutorials/android/android-fundamentals-scheduling -recurring-tasks/ –

risposta

6

Utilizzare la classe Alarm manager e inserire la notifica in una classe NotifyService. Ciò imposterà un allarme ogni giorno alle 8:

Intent myIntent = new Intent(Current.this , NotifyService.class);  
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0); 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY, 08); 
calendar.set(Calendar.MINUTE, 00); 
calendar.set(Calendar.SECOND, 00); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pendingIntent); //set repeating every 24 hours 
+0

Ho le stesse impostazioni ancora ricevo notifiche ogni ora invece di una volta al giorno. – Roon13

+0

Funzionerà finché l'utente non riavvia il telefono. Per far funzionare AlarmManager anche dopo il riavvio, controlla questo post http://stackoverflow.com/questions/12512717/android-alarmmanager-after-reboot –

+1

Lo stesso qui ... Non viene inviato una volta al giorno ma ogni volta che apro l'app – Si8

2

Non è necessario un server. Penso che il modo migliore per implementare questo è usare AlarmManager.

Alarm Manager Example

+0

typo change AlertManager to AlarmManager –

Problemi correlati