更新记录
1.0.0(2026-02-21)
1.0.0(2026-02-21)
平台兼容性
ay-keepalive
Android 前台服务保活插件,基于 UTS 开发,轻量、稳定、低耗电。
功能特性
- 通知栏常驻前台服务,防止应用被系统回收
- 支持普通模式和后台无声音乐模式双重保活
- 通知权限检测
- 后台限制检测(电池优化 + 后台运行限制)
- 自启动设置页面跳转(适配小米/华为/OPPO/vivo/三星/魅族/一加等 11 个厂商)
- 请求忽略电池优化
- 动态更新通知栏内容
- 应用被划掉后自动重启服务(START_STICKY)
平台兼容性
| Android | iOS |
|---|---|
| 5.0+ | × |
Android CPU 类型:armeabi-v7a ✓ arm64-v8a ✓ x86 ✓
使用方式
1. 导入插件
将插件放入项目 uni_modules 目录下,或从插件市场直接导入。
2. 引入 API
import {
checkNoticesPermission,
checkIsLimit,
openSafeSetting,
requestIgnoreBattery,
startFrontService,
stopService,
isServiceRunning,
updateNotification
} from '@/uni_modules/ay-keepalive';
3. API 说明
checkNoticesPermission()
检查是否有通知权限。
const hasPermission = checkNoticesPermission()
// 返回 true 或 false
checkIsLimit()
检查是否受后台限制(电池优化白名单 + Android 9+ 后台限制检测)。
const res = checkIsLimit()
// res = { flag: true, data: true/false, msg: 'success' }
// data 为 true 表示受限制
openSafeSetting()
打开自启动设置页面。已适配:小米、华为、OPPO、vivo、三星、魅族、锤子、乐视、一加、中兴、联想。未适配的厂商会兜底打开应用详情页。
openSafeSetting()
requestIgnoreBattery()
请求系统忽略电池优化(弹出系统确认弹窗)。
requestIgnoreBattery()
startFrontService(options, callback)
开启前台保活服务。
startFrontService({
title: '我的应用', // 通知栏标题,默认为应用名称
content: '正在后台运行', // 通知栏内容,默认为"应用名称+正在运行"
mode: 'none' // 'none'-普通模式, 'media'-后台无声音乐模式
}, (res) => {
// res = { flag: true/false, msg: '服务启动成功' }
})
stopService(callback)
关闭保活服务。
stopService((res) => {
// res = { flag: true/false, msg: '服务关闭成功' }
})
isServiceRunning()
检查服务是否正在运行。
const running = isServiceRunning()
// 返回 true 或 false
updateNotification(title, content)
动态更新通知栏显示内容(服务运行中有效)。
updateNotification('我的应用', '已在后台运行 30 分钟')
4. 完整示例
App.vue(应用切后台时更新通知)
<script>
import { isServiceRunning, updateNotification } from '@/uni_modules/ay-keepalive';
export default {
onShow() {
if (isServiceRunning()) {
updateNotification('我的应用', '应用正在运行')
}
},
onHide() {
if (isServiceRunning()) {
updateNotification('我的应用', '应用已切换至后台运行')
}
}
}
</script>
页面中使用
<script>
import {
checkNoticesPermission,
checkIsLimit,
openSafeSetting,
requestIgnoreBattery,
startFrontService,
stopService,
isServiceRunning
} from '@/uni_modules/ay-keepalive';
export default {
methods: {
start() {
startFrontService({
title: '我的应用',
content: '正在后台运行',
mode: 'media'
}, (res) => {
console.log(res.msg)
})
},
stop() {
stopService((res) => {
console.log(res.msg)
})
}
}
}
</script>
保活模式说明
| 模式 | 值 | 说明 |
|---|---|---|
| 普通模式 | none |
仅通知栏常驻 + WakeLock,适合大多数场景 |
| 音乐模式 | media |
在普通模式基础上增加后台播放无声音乐,保活效果更强 |
注意事项
- 必须使用自定义基座:插件依赖 AndroidManifest.xml 中的 Service 声明和 assets 资源,标准基座下无法生效。运行 → 原生App-云打包 → 勾选自定义基座,打包后选择自定义基座运行。
- 通知权限:Android 13+ 需要用户手动授予通知权限,启动服务前建议先调用
checkNoticesPermission()检测。 - 电池优化:建议引导用户调用
requestIgnoreBattery()加入电池优化白名单,并通过openSafeSetting()开启自启动权限,以获得最佳保活效果。 - WakeLock:服务启动后会持有 PARTIAL_WAKE_LOCK(24 小时超时自动释放),防止 CPU 休眠。
- 应用被划掉:服务设置了
START_STICKY,并在onTaskRemoved中尝试重启,但部分厂商的强力清理仍可能杀死服务。 - Android 14+:已声明
FOREGROUND_SERVICE_MEDIA_PLAYBACK权限,兼容 Android 14 的前台服务类型要求。
更新日志
1.0.0(2026-02-21)
- 初始版本发布
- 新增通知栏常驻前台服务保活
- 新增后台播放无声音乐模式(media)
- 新增检查是否有通知权限(checkNoticesPermission)
- 新增检查是否受后台限制(checkIsLimit)
- 新增打开自启动设置页面,适配小米/华为/OPPO/vivo/三星/魅族/锤子/乐视/一加/中兴/联想共 11 个厂商(openSafeSetting)
- 新增请求忽略电池优化(requestIgnoreBattery)
- 新增动态更新通知栏内容(updateNotification)
- 新增服务运行状态查询(isServiceRunning)
- 支持应用被划掉后自动重启服务(START_STICKY + onTaskRemoved)
- 兼容 Android 5.0 - 14+,已声明 FOREGROUND_SERVICE_MEDIA_PLAYBACK 权限

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 171
赞赏 1
下载 11291367
赞赏 1862
赞赏
京公网安备:11010802035340号