fix: Delay Feature Flag networking call until the app has been foregrounded. #877
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Delays the feature flag
loadFlags()network request from SDK initialization to when the app first enters the foreground. This prevents a large number of devices from waking up at the same time (push notification) and requesting flags at the same time. Flags should only be loaded automatically when a user opens the app to the foreground.Problem
When customers initialize the Mixpanel SDK in their
Application.onCreate(), theloadFlags()network call was triggered immediately duringMixpanelAPI.getInstance().Application.onCreate()Solution
loadFlags()call from theMixpanelAPIconstructor toonForeground()AtomicBooleanflags to control behavior:mHasAppForegrounded: Tracks whether the app has ever entered foregroundmInitialFeatureFlagLoad: Ensures the initial load only happens once