Я разрабатываю приложение для Android для консультирования. Клиент может просмотреть запланированное назначение в приложении. Например,Точное время для пользовательских уведомлений в Android
Следующая назначение: 31 декабря 2016 10:00 утра
Теперь мне нужно сделать, что пользователь будет получать 2 уведомления - напоминания о назначении. Один за 7 дней до и другой на 3 дня раньше. Я сохраняю эту дату (31 декабря 2016 10:00) как String
, поэтому я могу извлечь год, месяц и т. Д. Я обнаружил, что мне нужно написать какой-то сервис, который отправит эти уведомления. Это то, что я пытался (не завершен):
public class NotificationService extends Service {
@Override
public void onCreate() {
Intent resultIntent=new Intent(this, MainActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, resultIntent, 0);
Notification nBuilder = new Notification.Builder(this)
.setContentTitle("Don't miss! ")
.setTicker("Notification!")
.setContentIntent(pIntent)
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setSmallIcon(R.drawable.my_logo)
.setContentText("7 days left till your appointment...")
//.setWhen(System.currentTimeMillis())
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nBuilder.flags |=Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(1,nBuilder);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
И метод, который я не знаю, откуда звонить:
public void reminder() {
Intent intent = new Intent(getActivity(), MainActivity.class);
AlarmManager manager =(AlarmManager) getActivity().getSystemService(Activity.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(getActivity().getApplicationContext(),
0,intent, 0);
Calendar cal=Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 8);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
manager.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),24*60*60*1000,pendingIntent);
}
Для тестирования я поставил часы/минуты/секунды вручную но, очевидно, мне нужно будет извлечь его с даты String
.
@Reaz: может ли удаление этих «импортных» линий затруднить понимание читателем проблемы? – halfer
Импорт вопрос долго думаю.Поэтому я удалил их. Импорт часто не нужен. –