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();
});