Android 省电策略 杀服务怎么办?

2023-11-02 12:59:58 +08:00
 as9567585

正在做一个语音房功能。flutter 开发的,不太懂 android 原生。

目前测试机是小米 9 MIUI12.5 。

设置了 app 常驻后台,虽然不杀后台了。

但是锁屏一段时间后,语音房内的 websocket 和 webrtc 就都断了。

测试发现把“省电策略”设置“无限制”,就能正常锁屏,并保持语音通话了。

想问下,针对这个“省电策略”,开发者能做什么呢?

9517 次点击
所在节点    Android
28 条回复
TArysiyehua
2023-11-02 15:30:01 +08:00
@as9567585 为啥不申请屏幕常亮,不锁定屏幕呢?
ysc3839
2023-11-02 15:39:41 +08:00
@as9567585 理论上来说你弄了前台服务(通知栏有常驻通知),不需要特殊设置(自启动关闭,省电策略智能限制)就能一直运行的。
MIUI 有几个特殊开关:
“自启动”控制是否能开机时启动,以及被杀死后能否自动重启。
“省电策略”控制没有前台服务时,后台服务(对用户完全不可见的服务)能运行的时长。
“最近任务锁定”控制按最近任务最底下 X 时会不会被清理。
MIUI 有一个与 AOSP 逻辑不一致,且用户没法控制的功能,那就是最近任务划掉 Activity ,会杀死整个应用。
如果某个应用是在 MIUI 白名单内(比如微信),且用户对这个应用开启了“自启动”,那划掉才不会被杀死。
如果这个应用不在白名单,但是开启了自启动,划掉会被杀死,但是应用可以立刻重新启动。一个案例是 Telegram ,在 Telegram 设置里开启后台保活,同时在 MIUI 设置里开启自启动,划掉 Telegram ,再打开应用信息,可以看到是在运行的(结束运行按钮不是灰的),关闭自启动,再划掉 Telegram ,应用信息里就显示不在运行了。
lindongwu11
2023-11-02 16:28:29 +08:00
我自用的笔记应用是作为开发者挂个常驻提示(还能用于点击唤醒),然后自己作为用户还得开锁定+后台无限制。
psklf
2023-11-02 18:45:12 +08:00
@as9567585 #9 先实现前台服务吧。
as9567585
2023-11-03 00:48:30 +08:00
@TArysiyehua 正准备,先这样做下,感觉也不太友好,比较耗电。 临时先这样弄下吧
as9567585
2023-11-03 00:53:01 +08:00
@Musong 看来也只有这样了,“引导用户跳转省电设置修改”
as9567585
2023-11-03 01:00:29 +08:00
@ysc3839 @psklf 这个 “前台服务(通知栏有常驻通知)” 我研究下, 不是搞 Android 开发的 😂,以前是主要是搞后端开发的。
4kingRAS
2023-11-03 10:14:35 +08:00
用 Alarm 唤醒给你的 websocket 发心跳保活

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/987828

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX