2014-04-16 17 views
5

Ho una domanda sulle notifiche locali in Android. Sto sviluppando un'applicazione in cui la prima parte deve ricevere tutte le riunioni della società del mio server (che ho raggiunto), e la seconda parte che devo comunicare un giorno prima di ogni riunione, ma con le notifiche locali.Come programmare le notifiche locali Android?

Come pianificare le notifiche locali alla data specificata?

+1

Controllare [Questo] (http://stackoverflow.com/questions/21461191/alarmmanager-fires-alarms-at-wrong-time/21461246#21461246) e [this] (http://developer.android.com/training/scheduling/alarms. html) – Skynet

risposta

12

Per programmare la notifica locale è necessario conoscere alcune delle cose che vengono utilizzati per programmare la notifica come

BroadcastReceivers IntentFilters AlarmManager NotificationService PendingIntent

Nel MainActivity effettuare le seguenti operazioni

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 

     Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION"); 
     notificationIntent.addCategory("android.intent.category.DEFAULT"); 

     PendingIntent broadcast = PendingIntent.getBroadcast(this, 100, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

     Calendar cal = Calendar.getInstance(); 
     cal.add(Calendar.SECOND, 15); 
     alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), broadcast); 
    } 

Il codice sopra programmerà un allarme dopo 15 secondi. Dopo 15 secondi trasmetterà la notificaIntent.

L'azione specificata nel costruttore intento è definita nel AndroidManifest.xml

Per comprendere il pieno funzionamento della notifica locale e per vedere un controllo codice di notifica di esempio questo articolo - http://www.singhajit.com/schedule-local-notification-in-android/

+0

cosa fare per ripetere il processo? – Saty

+1

Usa HOUR_OF_DAY per Calendar e setRepeatingAlarm 'Calendar cal = Calendar.getInstance(); cal.add (Calendar.HOUR_OF_DAY, 09); cal.add (Calendar.MINUTE, 0); cal.add (Calendar.SECOND, 0); alarmManager.setRepeating (AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 24 * 60 * 60 * 1000, trasmissione); ' –

+1

@Saty: potresti accettare questa risposta come risposta se questo ha aiutato a risolvere il tuo problema, altrimenti metti un commento che non ha aiutato Airebbe gli altri in cerca di una domanda simile. – bianca

Problemi correlati