demo · v139

Lifecycle Recorder

Page Lifecycle API gives you three real signals before Android freezes your tab: visibilitychange, freeze, and resume. v139 means those signals fire within a minute, not five. This page records every transition — switch tabs, lock your phone, and come back to see them.

state: active visibility: visible frozen: no

backgrounded v138: ~5 min → freeze vs v139: ~1 min → freeze

event log (live)

the code

// Three signals to capture before Android freezes your tab.
document.addEventListener("visibilitychange", () => {
  if (document.visibilityState === "hidden") flushPendingState();
});

document.addEventListener("freeze", () => {
  // Last call: persist to IndexedDB before the tab loses CPU.
  navigator.locks.request("save", () => persistOrTransfer());
});

document.addEventListener("resume", () => {
  // Coming back: reconnect long-lived resources.
  reopenSockets();
  reloadDocuments();
});

see also