Skip to main content

Last run end state

Last run end state API​

This API enables customers to automatically/programmatically understand if the previous app instance ended in a crash. Depending on your use case, having the ability to query an API to understand if the previous app instance ended in a crash will enable you to adjust the behavior or UI of your app after a crash has occurred.

What does previous app instance mean?

A cold launch, basically. If the app gets backgrounded/resumed so a new session part starts, the value returned will not change. So:

  1. App crashes
  2. App is relaunched
  3. getLastRunEndState returns "crashed"
  4. App is sent to background
  5. App is resumed, starting a new session part
  6. getLastRunEndState still returns "crashed"
  7. App exits cleanly
  8. App is relaunched
  9. getLastRunEndState returns "clean exit"

Integration steps​

In order to use this feature, you will need to follow two steps:

  1. Make sure your app is using the latest version of the Embrace SDK
  2. Implement the API call after starting the SDK to receive the state of the last run.
// The SDK must be started before checking the last run end state
val didLastRunCrash = Embrace.lastRunEndState == LastRunEndState.CRASH

Important notes

Important
  • The API can only be called after the SDK has been started. If a call is made prior to starting the Embrace SDK you will get a response of LastRunEndState.INVALID
  • It will return that a crash occurred if the app crashed any time since the app last came to the foreground. This includes if the app crashed while running in the background.

Version​

This feature is included in Embrace SDK version 5.21.0 and above.

Possible values​

/// Used to represent the end state of the last run of the application.
enum class LastRunEndState {
/**
* The SDK has not been started yet.
*/
INVALID(0),

/**
* Last run ended in a crash.
*/
CRASH(1),

/**
* Last run ended without a crash.
*/
CLEAN_EXIT(2)
}

Support​

If you have any questions or there’s something that is not working as intended, please reach out to your Customer Success Manager.