How to start a personalized date and time notification?

I know how to trigger an X millisecond notification after some click event. Code like this

Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { triggerNotification(); } }; timer.schedule(timerTask, 3000); 

If the notification code is as follows

 CharSequence title = "Hello"; CharSequence message = "Hello, Android!"; NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.icon, "A New Message!", System.currentTimeMillis()); Intent notificationIntent = new Intent(this, AndroidAlarmService.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(AndroidAlarmService.this, title, message, pendingIntent); notification.defaults = Notification.DEFAULT_SOUND; notification.flags |= Notification.FLAG_AUTO_CANCEL; notificationManager.notify(NOTIFICATION_ID, notification); 

How can I set a notification to be displayed on a specific date at a specific time, say, October 1, 7 pm

+5
android notifications
Sep 24 2018-11-17T00:
source share
1 answer

I think the best way is to create a service that sets up a notification, and then activate the service using AlarmManager .
Here is my code for this. What is the code for AlarmManager:

 private void startAlarm() { AlarmManager alarmManager = (AlarmManager) this.getSystemService(this.ALARM_SERVICE); Calendar calendar = Calendar.getInstance(); calendar.set(int year, int month, int date, int hour, int minute, int second); long when = calendar.getTimeInMillis(); // notification time Intent intent = new Intent(this, ReminderService.class); PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0); alarmManager.set(AlarmManager.RTC, when, pendingIntent); } 

Here is the service:

 public class ReminderService extends IntentService { private static final int NOTIF_ID = 1; public ReminderService(){ super("ReminderService"); } @Override protected void onHandleIntent(Intent intent) { NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); long when = System.currentTimeMillis(); // notification time Notification notification = new Notification(R.drawable.icon, "reminder", when); notification.defaults |= Notification.DEFAULT_SOUND; notification.flags |= notification.FLAG_AUTO_CANCEL; Intent notificationIntent = new Intent(this, YourActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent , 0); notification.setLatestEventInfo(getApplicationContext(), "It about time", "You should open the app now", contentIntent); nm.notify(NOTIF_ID, notification); } } 
+16
Sep 24 '11 at 18:16
source share



All Articles