宙斯浏览器扩展需声明background/service_worker并禁用automatic-tab-discarding、background-throttling、page-visibility三项实验功能,安卓端还需关闭电池优化、开启后台弹出界面权限,方可实现锁屏/切换后持续运行。

您需要让宙斯浏览器在切换应用、锁屏或最小化后,仍保持某个扩展(如自动签到脚本、监控通知、定时刷新器)持续执行逻辑,而非被系统休眠或浏览器终止其后台线程。
确认扩展具备后台运行能力
并非所有扩展都支持后台持续运行。只有声明了 【"background"】 或 【"service_worker"】 且正确注册了持久化事件监听的扩展,才能在标签页不可见时维持 JS 上下文。例如 Tampermonkey 的用户脚本若依赖 setInterval 轮询,必须搭配 service worker 模式才可能存活;纯 content script 在页面隐藏后会立即暂停。
打开 zeus://extensions → 找到目标扩展 → 点击“详情” → 向下滚动至“扩展详细信息” → 查看“后台服务”或“Service Worker”状态是否显示为“活跃”。若显示“已停止”或无此字段,该扩展不具备后台保活能力,后续设置无效。
关闭浏览器级标签页休眠与后台节流
宙斯浏览器默认启用 Chromium 的后台节流机制,会冻结非活跃标签页的定时器、网络请求与 JS 执行。即使扩展已注册 service worker,也会被强制降频甚至挂起。
第一步:在地址栏输入 zeus://flags 并回车,进入实验性功能页。
第二步:依次搜索并定位以下三项:
① automatic-tab-discarding
② background-throttling
③ page-visibility
第三步:将这三项的下拉选项全部设为 【Disabled】。注意不是“Default”,必须是明确禁用状态。
第四步:点击页面底部“Relaunch”按钮重启浏览器——不重启则配置完全不生效。
授予系统级后台驻留权限(安卓端必需)
安卓系统会对非前台应用施加严格限制,宙斯浏览器若未获得对应权限,其扩展的 service worker 进程会在 1~3 分钟内被系统强制杀死,无论浏览器设置如何。
方法一:关闭电池优化
进入手机【设置】→【应用管理】→【宙斯浏览器】→【电池】→ 将【电池优化】设为【不允许优化】。
方法二:允许后台弹出界面
返回【宙斯浏览器】设置页 → 【权限】→【后台弹出界面】→ 开启开关。此项常被忽略,但它是 service worker 触发通知、唤醒主线程的关键前提。
方法三:锁定内存不回收(可选增强)
在【设置】→【应用管理】→【宙斯浏览器】→【存储】中,点击“清除缓存”后,再点“冻结”或“锁定”(部分厂商系统支持),防止系统因内存压力主动杀掉其进程。
强制扩展使用 Service Worker 模式(开发者适用)
若您自行开发或修改扩展,需确保其 manifest.json 中明确启用 service worker 并禁用旧式 background page:
删除 "background": { "scripts": ["background.js"] } 这类声明;
改为:
"background": {
"service_worker": "sw.js",
"type": "module"
}
并在 sw.js 中注册 fetch、push、alarms 等持久事件监听器,例如:
self.addEventListener('fetch', event => { /* 必须有实际逻辑,空监听器会被系统忽略 */ });
保存后回到 zeus://extensions 页面,先点击扩展右侧的“移除”,再通过“加载已解压的扩展程序”重新导入整个文件夹——仅刷新页面无法重载 service worker。
验证后台运行是否生效
方法一:实时进程检测
在地址栏输入 zeus://processes 回车 → 查找名称含 “ServiceWorker” 或 “Extension” 的进程 → 若其“CPU 时间”列在后台状态下仍在缓慢增长,说明正在运行。
方法二:日志触发验证
在扩展的 service worker 文件中插入:
console.log('[SW] Alive at ' + new Date().toISOString());
然后打开 zeus://extensions → 点击目标扩展右侧“背景页”链接 → 切换到“Console”标签 → 最小化浏览器并等待 2 分钟 → 返回查看是否有新日志输出。无新增日志 = 后台已被终止。
方法三:真实行为测试
设置一个每 60 秒向 localStorage 写入时间戳的脚本 → 锁屏 5 分钟后解锁 → 打开 zeus://extensions → 点击“背景页”→ 在 Console 中输入 JSON.parse(localStorage.getItem('heartbeat')) 查看最后写入时间。若间隔超过 90 秒,说明后台未持续运行。











