Любое намерение, которое передается либо при создании активности, либо в качестве параметра в onNewIntent()
, живет до тех пор, пока активность не была уничтожена. Ну, даже если activity is launched from recent apps section после уничтожения, но это еще одна проблема.Android-активность состоит из нескольких циклов onStart и onStop
Вопрос в том, какой должна быть лучшая практика в таких случаях, чтобы избежать дублирования обработки из-за старого намерения, когда действие запускается/возобновляется с фона или «создается» из последнего раздела приложений.
Скажите, я тяну getDataString()
, например, для аналитики, которая в идеале должна отслеживаться только тогда, когда приложение действительно началось через deeplink
. Но он очень доступен каждый раз в цепочке звонков onStart()
, внутри старого намерения. Что рекомендуется?
- Устанавливается в
onStop()
? // кажется наиболее логичным для меня. подводные камни? - некоторые местные проверки, чтобы игнорировать значения?
- установка временных полей в
onStop()
, чтобы определить, является ли это старым?