Problem
On Android, when the app is closed and quickly reopened, the system reuses the still-alive process. Since AppStartTimeProvider is a ContentProvider, its onCreate() only runs once per process — not on each app reopen. This causes the startup timestamp in SharedPreferences to become stale, making the ManualAppStartup Sentry span duration grow with each close+reopen cycle.
Solution
Move the System.currentTimeMillis() recording from AppStartTimeProvider.onCreate() to ExpensifyActivityBase.onCreate(), which is recreated on every app open even with process reuse.
Fix: https://github.com/Expensify/Mobile-Expensify/pull/13900
Issue Owner
Current Issue Owner: @war-in
Problem
On Android, when the app is closed and quickly reopened, the system reuses the still-alive process. Since
AppStartTimeProvideris aContentProvider, itsonCreate()only runs once per process — not on each app reopen. This causes the startup timestamp in SharedPreferences to become stale, making theManualAppStartupSentry span duration grow with each close+reopen cycle.Solution
Move the
System.currentTimeMillis()recording fromAppStartTimeProvider.onCreate()toExpensifyActivityBase.onCreate(), which is recreated on every app open even with process reuse.Fix: https://github.com/Expensify/Mobile-Expensify/pull/13900
Issue Owner
Current Issue Owner: @war-in