标签:问题 androi start 目录 内存 为什么 责任 长连接 代码
最近项目中用到了个推做推送,关于个推的接入步骤官网有很详细的步骤,这里不说,不过正是由于使用个推,引起了一点其他的思考,那就是个推是怎么做到即便把app应用进程在后台杀掉,也能接受到消息。
说到这个问题,先说一个我日常时候android app的一个体会,我们经常打开某一个不常用的应用,打开的同时会弹出很多这个app和其他不常用app的推送消息(注意是其他且不常用的app)。为什么呢?因为好多推送平台都使用了一个叫“看护联盟”的东西。
个推官网上说,个推的sdk可以在后台常驻且不会耗费太多电量。这个是怎么实现的呢?其实android4.0后没有什么应用是能在后台常驻的,手动的杀掉后台或是当内存不够的时候都会让android杀掉后台的sdk。而另一个方面,加入每个app的个推sdk都在后台常驻的话,电量的消耗是难以想象的。所以个推使用了一个很巧妙的方式:就是将所有手机上使用个推的app都共用一条长连接,这样的就保证app再多也只有一条长连接(常驻后台的sdk)。同时加入我们手动清除后台后(事实上我们也不会清理所有后台,有些应用是我们自己设置的后台接受消息),只要有一个我们经常使用的app打开后,那么这条长连接就会生效,那么所有使用个推的app就可以正常接受推送消息,这样就实现了高频应用带动低频应用,给我们一种个推在后台常驻的感觉。
那么如果我们需要自己搞一个进程在后台一直保留,怎么办呢?(强调一点,这个做法是极度不推介的。无论是出于自己app的体验还是考虑到整个android系统的角度,都不推介这样做。安卓手机总是越用越卡很大程度上就是有越来越多的app进程常驻后台,不负责任)。
方法有这么几种:
标签:问题 androi start 目录 内存 为什么 责任 长连接 代码
原文地址:http://www.cnblogs.com/YaoJianXun/p/6138070.html