更新记录

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 在普通模式基础上增加后台播放无声音乐,保活效果更强

注意事项

  1. 必须使用自定义基座:插件依赖 AndroidManifest.xml 中的 Service 声明和 assets 资源,标准基座下无法生效。运行 → 原生App-云打包 → 勾选自定义基座,打包后选择自定义基座运行。
  2. 通知权限:Android 13+ 需要用户手动授予通知权限,启动服务前建议先调用 checkNoticesPermission() 检测。
  3. 电池优化:建议引导用户调用 requestIgnoreBattery() 加入电池优化白名单,并通过 openSafeSetting() 开启自启动权限,以获得最佳保活效果。
  4. WakeLock:服务启动后会持有 PARTIAL_WAKE_LOCK(24 小时超时自动释放),防止 CPU 休眠。
  5. 应用被划掉:服务设置了 START_STICKY,并在 onTaskRemoved 中尝试重启,但部分厂商的强力清理仍可能杀死服务。
  6. Android 14+:已声明 FOREGROUND_SERVICE_MEDIA_PLAYBACK 权限,兼容 Android 14 的前台服务类型要求。

更新日志

1.0.0(2026-02-21)

  1. 初始版本发布
  2. 新增通知栏常驻前台服务保活
  3. 新增后台播放无声音乐模式(media)
  4. 新增检查是否有通知权限(checkNoticesPermission)
  5. 新增检查是否受后台限制(checkIsLimit)
  6. 新增打开自启动设置页面,适配小米/华为/OPPO/vivo/三星/魅族/锤子/乐视/一加/中兴/联想共 11 个厂商(openSafeSetting)
  7. 新增请求忽略电池优化(requestIgnoreBattery)
  8. 新增动态更新通知栏内容(updateNotification)
  9. 新增服务运行状态查询(isServiceRunning)
  10. 支持应用被划掉后自动重启服务(START_STICKY + onTaskRemoved)
  11. 兼容 Android 5.0 - 14+,已声明 FOREGROUND_SERVICE_MEDIA_PLAYBACK 权限

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。