Session Life Cycle
Repro sends data to the Repro server from launch of the app to the transition to the background as one session.
There is no upper or lower limitation on the duration of a session, as it depends on users’ activity.
There are two patterns for the session start timing: when the app launches in the initial state and when the app is restarted.
1.In case the app launches in the initial state
It will be the app launch in the initial state in cases as below.
- When it has never been launched after turning on the power
- When the user stops the application (task kill) on the multitasking screen
- When the application is automatically stopped by the OS and then started
If a user launches in either way from 1 to 3, the session will be started after calling setup. When setup is called, the SDK communicates with Repro server to get tracking configuration information. Start the session if the Repro feature is enabled in the settings.
2.In case the app restarted
If the app is launched from the multitasking screen after being moved to the background and before being stopped by the OS, the app will start in the middle.
In this case, setup is not called because AppDelegate :: applicationDidFinishLaunching: on iOS and Application # onCreate on Android are not called. However, the SDK will automatically detect when the app is restarted and start a new session.
The session ends when the application moves to the background, such as by pressing the Home button or launching another application from the Notification Center.
Although,If the user only opens the control center or notification center, the session will not be stopped. In this case, there is no restriction on the pause time as well.
In the case of iOS SDK 3.0.1 or lower, even if you launch Safari or another application from the app and go to the background, the session will not be ended immediately and will be suspended for up to 2 minutes 30 seconds.