安卓 MQTT 客户端如何保证 Service 一直运行在后台?

2022-06-22 11:45:37 +08:00
 zinwalin

有个客户端集成了 MQTT 库,在前台运行时,MQTT 消息可以正常接收和发送。 但是放在后台后, 消息就收不到了。

有办法让 MQTT service 一直运行吗?

7206 次点击
所在节点    Android
47 条回复
DrX
2022-06-22 11:50:35 +08:00
俗称保活,目前这是一门高精尖技术活。
nothingistrue
2022-06-22 11:52:06 +08:00
后台接受消息,请使用推送,除了微信之外的强行保活手段,必然被 OEM 和用户无情的杀掉。
passon
2022-06-22 11:54:11 +08:00
目前已经没有稳定的包活手段了。可以 App 挂了后应该走厂商推送
crayygy
2022-06-22 12:02:06 +08:00
Foreground Service
psklf
2022-06-22 12:12:35 +08:00
Foreground Service 应该可以
springz
2022-06-22 12:29:59 +08:00
看设备是不是自己能控制的,自己定制一个 ROM 加白名单。
springz
2022-06-22 12:31:06 +08:00
Foreground services 不行的,还是会断。
springz
2022-06-22 12:33:47 +08:00
保活目前是超级技术活,有能量就厂商白名单,比如微信。没能量就老老实实推送。不过国内这推送,唉。多集成几个厂商推送吧。
springz
2022-06-22 12:35:33 +08:00
看什么应用,要是不是 toC 的,特定领域的,大不了一直放着音乐,霸占一个通知栏,也能活。
springz
2022-06-22 12:38:15 +08:00
放音乐这个要是进程被杀了,也拉不起来的。总之现在要是要求一直在线就厂商白名单吧,看自己公司有没有这个能量。
springz
2022-06-22 12:39:17 +08:00
用这个怼需求提出方也行,有这需求找手机厂商解决。
leafre
2022-06-22 12:47:57 +08:00
无解,换种实现方式
Buges
2022-06-22 13:06:31 +08:00
@springz 你自己定制的 ROM 本身就不会杀任何非显式禁止的进程。
cczhrd
2022-06-22 13:54:47 +08:00
darkengine
2022-06-22 14:17:32 +08:00
这要是做到了,国外不敢讲,国内互联网大厂随便挑哈
aneostart173
2022-06-22 16:54:16 +08:00
挺难的,而且一年比一年难。老实用推送,或者自己定制设备。
BlackBull19
2022-06-22 16:55:42 +08:00
只能推荐推送了. 搞一个坚挺前后台切换的 然后走推送, 目前只能推送
lqzhgood
2022-06-22 18:13:21 +08:00
提示用户把 App 加入后台自启动能保活吗?
cheng6563
2022-06-22 18:14:50 +08:00
引导客户再设置里加后台运行白名单,别无他法。
psklf
2022-06-22 19:13:49 +08:00
@springz 放音乐不就是 foreground service 吗?

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

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

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

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

© 2021 V2EX