You need to use a SERVICE for this.
Search the Service totorials on how to
Inform about how to reshedule a service to a given time.
At the end it will go a way like this:
- You app is started.
- You app starts a service.
- The service calculated the time the notification should appear.
- The service will reshdule itself to the given time. When sheduled the service will finish and come back at the given time
- The service need to check if it is now time to show the notification. If it is time it will create a notification.