请选择 进入手机版 | 继续访问电脑版

默认
发表评论 7
自已写的推送服务在小米系统遇到的后台心跳停止问题
目前我们发现MQTT的心跳包,我们在应用层用AlarmService,handlerThread和timerTask实现定时任务(测试的时候以10秒一次),发现以下问题
1 AlarmService的触发时间非常不准,有的时候1分钟一次,有的时候45分钟一次
2 handlerThread和timeTask,在CPU未休眠的时候,保持计时准确,但是一旦小米手机进入休眠状态,就无法执行
3 小米的神隐模式有以下几个问题,用户学习成本高,每次打开过后,过一段时间,又偷偷关闭了

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:iOS的推送服务APNs详解:设计思路、技术原理及缺陷等下一篇:极光推送初体验:Android客户端集成、服务端集成

本帖已收录至以下技术专辑

推荐方案
评论 7
小米系统很奇葩的,搞IM开发和推送开发的人,最怕它上面的神隐模式了。

情况是这样的:
在MIUI深度休眠之后,默认会彻底断开后台应用的socket,关于微信,和QQ,miui官方的帖子说了,给这2个应用特殊照顾。

问题怎么解决:
咱们自己的app应用就没有这些特殊待遇了,所以就必须需要用户自己来手动设置后台app在深度休眠之后依然要使用网络连接。
位置就在: 设置->其他高级设置->电量和性能 ->"神隐模式"
没事就是这个神隐模式,默认就是开启的,不注意根本不知道MIUI加了这个坑爹的功能,只要把这个神隐模式关闭之后,推送心跳、IM心跳这些就可以正常的工作了。

关于用户手动设置关闭神隐模式的体验问题:
上面也说了,qq和微信这样的大牌是被MIUI特殊照顾的,其它app就没那么好待遇了,只能自已在UI和功能体验上下功夫了:比如像ios一样,推送通知这样的权限申请时给一个提示框,友好一点,引导用户去解决它(对于你的app一说,首次安装运行时如果是运行在MIUI下,就引导用户去解决这个神隐模式问题了)。
签名: 《快速了解Electron:新一代基于Web的跨平台桌面技术》http://www.52im.net/thread-2616-1-1.html
看到android各家的ROOT兼容性区别这么大,苹果就高兴了。
签名: 国庆长假还没有缓过来,请让我静一静,产品狗死远点...
android上的推送和im的线程保活确实挺头疼的,跟大ios的apns的便利性比起来,简直就是渣。
签名: 该会员没有填写今日想说内容.
好像不光是后台的socket,连定时器这些都无法正常使用
引用:wukai3699298 发表于 2016-06-12 09:56
好像不光是后台的socket,连定时器这些都无法正常使用

准确地讲应该是整个进程都给你挂起了,就跟ios一样
签名: 《快速了解Electron:新一代基于Web的跨平台桌面技术》http://www.52im.net/thread-2616-1-1.html
提示: 作者被禁止或删除 内容自动屏蔽
签名:
小米系统 进入后台会 挂起 一些 没有某些权限的进程。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部