Sometimes you need to remind the user once or twice at a specific time. You can make this by secluding some local notifications which can also be repeated in specific time periods.
Other times notifications triggered by remote events, like other users, or the developer tries to reach you with some information. These push notifications can contain new data and could even wake your app for a small period to fetch new information.