说一说小米手机推送这件事_1

来源:互联网 发布:怎样恢复手机sd卡数据 编辑:程序博客网 时间:2024/05/08 03:21

这几天公司一直在做一个需求,其实很简单,但是对于安卓而言又十分头疼——消息推送。

我们公司采用的是友盟推送,友盟推送集成十分简单,但是我查看过很多资料,它也集成了很多没有必要的第三方库,比如okhttp...,可能这在我们app运行的过程中,会造成一丢丢不必要的内存浪费。但是处于国内数一数二的推送集成来讲,该团队还是十分强大的。至少咱们是用了人家的是吧。

友盟推送采用的也是我们所俗称的心跳长连接,会定时检测app的长连接状态,还采用的有app相互拉起机制,我们所知道的淘宝、uc浏览器都是采用得有友盟推送,那在他们服务启动的时候,就会采用唤醒机制,拉起我们app的长连接(但是我好像就成功过一次,其他时候设备全都是离线的)。

在大多数机型上面,我们的推送在app退到后台,但没有被杀进程的时候,都是可以收得到推送的,但是十分蛋疼的就是我们强大的小米手机。。。小米手机最新都是采用他们自己研发的MIUI系统,想想都觉得可怕啊,只要一退到后台,马上就会限制app在后台的活跃时间,换句话说,只要你不是它小米系统级别的服务或者是进程,那统统都是被kill的命啊,可能你们会说,那扣扣 微信 咋做到的?小米也说了,人家默认了那两家人是在人家的白名单中。懂么?在公司的时候也是,同事就说为什么扣扣 微信 我随时都能收到呢?额。。我只能说我还是太渺小。

回头接着吐槽小米手机,网上很多法子说的:

1.开启自启动权限,打开通知栏,关闭神隐模式,这些所有该给的权限我都给了,然而还是没有什么用的。

2.要不就让咱app一直处于前台进程它不就不会杀了么,我也试过,在通知栏长挂一条没有消息的通知,使得app一直处于前台进程,然而 很多手机都是可以的,除了小米 - -。

3.再者要不咱启动两个服务,互相唤醒,互相拉起呗。我也试过呀,但是只要绑定的服务被系统给kill掉了,那另一个服务也会随之被kill掉的,毫无疑问,是在劫难逃的。

4.后来,一个朋友给我发了一个链接,是让app不会被杀死的方法,换句话说,就是臭不要脸的流氓软件方式,我试的这个方法,在很多手机上十分行之有效,客户端想关都关不了,我自己就能把自己给启动起来,牛鼻吧。但是小米不知怎么地,还是不行,(PS:这种方式,不管是哪个手机上都是不可取的,流氓软件的产生,会拖我们手机的性能,让手机卡的要死,越来越卡,所以,为了一片净土,还是希望大家不要这么做。我的方式也被领导拒绝了)。

5.我现在想到的解决办法就是,在小米手机上就使用小米推送,还不知道行不行得通,因为小米开发者账号还在审核中,如果我解决了问题,会更新博文,告诉大家的。

0 0
原创粉丝点击