## Notification lifecycle

Before delving into details about the various functions Amplify provides, it can be helpful to better understand the lifecycle of a notification as it moves through your app in its various states once you've integrated Amplify Push Notifications.

For the purposes of this guide, we will simplify the terminology as follows

import flutterTerminology from '/src/fragments/lib/push-notifications/flutter/interact_with_notifications/terminology.mdx';
import reactNativeTerminology from '/src/fragments/lib/push-notifications/react-native/interact_with_notifications/terminology.mdx';

<Fragments
  fragments={{
    flutter: flutterTerminology,
    'react-native': reactNativeTerminology
  }}
/>

### In a foreground state

![Foreground state lifecycle](/images/push-notifications/cross-platform-lifecycle/pn-lifecycle-foreground.png)

- Notifications are not displayed when received in foreground
- It is possible for notifications to arrive in your user's notification center but not be opened until a later time
- Since it is possible to interact with the notification center at any time on a device, your user could even open a notification while your app is in the active foreground

### In a background state

![Background state lifecycle](/images/push-notifications/cross-platform-lifecycle/pn-lifecycle-background.png)

- _Notification A_ represents an example of a notification which was received but never interacted with
- Recall that, in a background state, your app is still running and therefore does not need to be launched — only brought back into the foreground

### In a terminated state

![Terminated state lifecycle](/images/push-notifications/cross-platform-lifecycle/pn-lifecycle-terminated.png)

- _Notification A_ represents an example of a notification which was received but never interacted with
- Recall that, in a terminated state, your app is no longer running and therefore needs to be launched
