DeviceActivityReport: visible per-app list updates, but aggregate total for same selection lags

Hi,

I’m using FamilyControls + DeviceActivity. Users select apps/categories/web domains via FamilyActivitySelection. I need to show today’s total usage for that selected group only, not the device’s full Screen Time.

Setup:

  • A visible DeviceActivityReport shows today’s per-app list with a daily DeviceActivityFilter for the selected tokens.
  • This visible list is usually accurate and updates quickly.
  • A separate hidden DeviceActivityReport uses the same filter to compute an aggregate total by summing app.totalActivityDuration in makeConfiguration(representing:).
  • The extension sends that total to the main app via notify_set_state + Darwin notification.
  • DeviceActivityMonitor is only used as a fallback.

Problem: The visible app list stays current, but the aggregate total for the same selected apps sometimes lags by several minutes or updates only after new selected-app usage occurs. Sometimes the total appears temporarily frozen while the app list still looks correct.

Questions:

  1. Is a hidden DeviceActivityReport a supported way to compute a selected-app aggregate total?
  2. Is makeConfiguration expected to run often enough for a near-live total?
  3. Why would the visible per-app report update while a hidden report with the same filter does not?
  4. What is the recommended architecture for a reliable, non-inflated today total for selected apps only?

Thanks!

DeviceActivityReport: visible per-app list updates, but aggregate total for same selection lags
 
 
Q