Android 后台任务/ Android后台优化/Android电池优化/自Android启动权限前身

80 篇文章 1 订阅

指导原则

一般来说,运行时间超过几毫秒的所有任务都应委派给子线程。长时间运行的常见任务包括解码位图、访问存储空间、处理机器学习 (ML) 模型、执行网络请求等。

后台优化

后台进程可能会耗费大量内存和电池电量。例如,某一隐式广播可能会启动许多已注册监听它的后台进程,即使这些进程可能并没有执行很多任务。这会对设备性能和用户体验产生重大影响。
为缓解此问题,Android 7.0(API 级别 24)施加了以下限制:

  • 如果以 Android 7.0(API 级别 24)及更高版本为目标平台的应用在清单中声明其广播接收器,则这些应用不会收到 CONNECTIVITY_ACTION 广播。如果应用使用 Context.registerReceiver() 注册 BroadcastReceiver 且该 Context 仍有效,则它们仍会收到 CONNECTIVITY_ACTION 广播。
  • 应用无法发送或接收 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO 广播。此项优化会影响所有应用,而不仅仅是那些以 Android 7.0(API 级别 24)为目标平台的应用。

用户发起的限制

在系统设置中的电池用量页面上,用户可以选择以下选项:

无限制:允许所有后台工作,这可能会消耗更多电量。
优化(默认):根据用户与应用互动的方式,优化应用执行后台工作的能力。
受限:完全禁止应用在后台运行。应用可能无法正常运行。

注意:如果用户在将您的应用置于“受限”状态之后启动了该应用,系统会暂时将该应用视为处于“无限制”状态。当用户停止与您的应用互动并开始与另一个应用互动时,系统会将您的应用重新置于“受限”状态。

施加的确切限制由设备制造商决定。例如,在搭载 Android 9(API 级别 28)或更高版本的 AOSP build 中,在后台运行且处于“受限”状态的应用存在以下限制:

  • 无法启动前台服务
  • 现有的前台服务会从前台移除
  • 不会触发闹钟
  • 不会执行作业

此外,如果应用以 Android 13(API 级别 33)或更高版本为目标平台且处于“受限”状态,除非应用因其他原因启动,否则系统不会传送 BOOT_COMPLETED 广播或 LOCKED_BOOT_COMPLETED 广播。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学知识拯救世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值