2014-04-16 54 views
5

我对Android中的本地通知有疑问。我正在开发一个应用程序,其中第一部分必须接收我自己的服务器的所有公司会议(我已经完成),第二部分必须在每次会议前一天通知,但必须通过本地通知。如何安排本地通知Android?

如何在给定日期安排本地通知?

+1

检查[这] (http://stackoverflow.com/questions/21461191/alarmmanager-fires-alarms-at-wrong-time/21461246#21461246)和[this](http://developer.android.com/training/scheduling/alarms。 html) – Skynet

回答

12

要安排本地通知你需要知道的一些被用于调度通知像

BroadcastReceivers IntentFilters AlarmManager NotificationService 的PendingIntent

在MainActivity的事情做以下

@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); 
    } 

上述代码将在15秒后安排警报。 15秒后它将广播notificationIntent。

在Intent构造函数中指定的动作是在AndroidManifest.xml

定义要了解本地通知的全部工作和看样品通知代码看看这篇文章 - http://www.singhajit.com/schedule-local-notification-in-android/

+0

重复该过程该怎么做? – Saty

+1

使用日历的HOUR_OF_DAY和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,broadcast);' –

+1

@Saty:如果这有助于解决您的问题,您能接受这个答案吗?没有帮助。它会帮助其他人寻找类似的问题。 – bianca