How to Create a Reminder Notification
You need two things:
- AlarmManager: to schedule your notification at a regular bases (daily, weekly,..).
- Service: to launch your notification when the AlarmManager goes off.
Here is a basic example:
In your Activity:
Intent myIntent = new Intent(this , NotifyService.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, myIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
calendar.add(Calendar.DAY_OF_MONTH, 1);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*60*24 , pendingIntent);
This will trigger Alarm each day at midnight (12 am). You can change that if you want.
Now, create a Service NotifyService
and put this code in its onCreate()
:
@Override
public void onCreate() {
NotificationManager mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.notification_icon, "Notify Alarm strart", System.currentTimeMillis());
Intent myIntent = new Intent(this , MyActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
notification.setLatestEventInfo(this, "Notify label", "Notify text", contentIntent);
mNM.notify(NOTIFICATION, notification);
}
And this code will show the notification when the Alarm is received.
Good Luck!
here is a little YouTube Video Tutorial about daily notifications. You can find the source code in the description.
This video is not made by myself. But I think its a quick help. Although i recommend some changes because the Notification.Builder is deprecated:
1.
import android.support.v4.app.NotificationCompat;
2.
// Change: Notification mNotify = new Notification.Builder(this) to
Notification mNotify = new NotificationCompat.Builder(this)
Have Fun!