We regard your app's lifecycle from its start-up until it goes to the background as session. Every tracked data belongs to one of the sessions.
Period of session¶
The period of session depends on the end users' behavior; however, there is no systematical limit to it.
The beginning of session¶
There are two cases that a session begins.
When the app starts as the initial state¶
The following cases count as a first time app launch:
The app has not been launched since the device booted up.
The app was intentionally terminated from "recently used apps" by the user.
The app was terminated by the system.
In above cases, the session begins after you call
setup is called, SDK will communicate with Repro's server and receive the configuration for tracking, in-app messages and so on. The session begins when Repro is activated in configuration.
When the app resumes from background¶
The app resumes when the user runs the app from "currently used apps" before the system has terminated it.
In that case,
AppDelegate::applicationDidFinishLaunching: (iOS) or
Application#onCreate (Android) won't be called so
setup won't be called either, but the SDK will detect an app launch and start a new session automatically.
The end of session¶
The session ends when the app goes to the background by the end user pushing the home button or launching another app from notification center.
Additionaly, the session won't stop even if the end user opens the control center or the notification center.
On iOS SDK 3.0.1 and below, if your app enters background by launching another app like Safari, then the session will wait 2.5 minutes for the user to return to your application and continue the session.