2021-06-16

闹钟AlarmManager和广播BroadCastReceiver实现后台服务功能性保活


由于Alarm不受应用生命周期的影响,可以通过设置系统闹钟的方法,间隔一定时间唤醒设备重新启动服务的方式来实现功能性保活;当然Alarm仍然会受到电池性能优化的影响,在设备处于休眠期时受到限制;当结束休眠期时会自动唤醒服务。对于不需要再休眠期执行操作的程序来讲这已经变相实现了保活。

功能实现步骤:
  • 定义服务
  • 静态广播注册
  • 服务中定义AlarmManager
  • 广播接收器启动服务
  1. 定义服务:首次启动服务
  2. 注册静态广播接收器:清单文件中注册接收器
  3. 定义AlarmManager:在服务Service中定义一次性Alarm,设置间隔时间,绑定广播broadcast用于启动闹钟时发送广播。(这里曾用repeat重复性闹钟直接实现循环启动服务,实际测试中重复性闹钟这里系统有限制,遂采取一次性闹钟和广播实现循环功能)
  4. 广播接收器接收广播再次启动服务,服务中重新设置一次性闹钟实现循环性保活。
    踩坑注意点:闹钟类型type、PendingIntent的flag属性选择
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值