2014-04-16 29 views
5

Android'de yerel bildirimler hakkında bir sorum var. İlk bölümde, kendi sunucumun tüm şirketlerinin toplantılarını alması gereken bir uygulama geliştiriyorum (bu başardım) ve ikinci bölüm her toplantıdan bir gün önce bildirimde bulunmalı, ancak yerel bildirimlerle.Zamanlama yerel bildirimler Android nasıl?

Belirli bir tarihte yerel bildirimler nasıl zamanlanır?

+1

Kontrol [Bu] (http://stackoverflow.com/questions/21461191/alarmmanager-fires-alarms-at-wrong-time/21461246#21461246) ve [bu] (http://developer.android.com/training/scheduling/alarms. html) – Skynet

cevap

12

Eğer

@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); 
    } 
aşağıdakileri yapın MainActivity yılında PendingIntent

NotificationService AlarmManager

Yayın Alıcılarının gibi bildirim planlamak için kullanılan IntentFilters olan bazı şeyleri bilmek gerekir yerel bildirim planlamak için

Yukarıdaki kod 15 saniye sonra bir alarm programlayacaktır. 15 saniye sonra, notificationIntent yayınlayacaktır.

Niyet yapıcı belirtilen eylemi yerel bildirimin tam çalışmasını anlamak için ve bu makaleyi örnek bir bildirim kod çek görmek AndroidManifest.xml

tanımlanır - http://www.singhajit.com/schedule-local-notification-in-android/

+0

İşlemi tekrarlamak için ne yapmalı? – Saty

+1

Takvim için HOUR_OF_DAY ve setRepeatingAlarm 'Calendar cal = Calendar.getInstance(); cal.add (Calendar.HOUR_OF_DAY, 09); cal.add (Calendar.MINUTE, 0); cal.add (Takvim.SECOND, 0); alarmManager.setRepeating (AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 24 * 60 * 60 * 1000, yayın); –

+1

@Saty: eğer bu sorunu çözdüyseniz, bunu cevap olarak kabul edebilir misiniz, aksi halde yardım etmedi Başkalarının benzer bir soru aramasına yardımcı olur. – bianca