2 a52728820 A52728820 于 2016.04.21 14:34 提问

Android service怎么在后台一直接收推送
  最近在做几个推送的demo,像百度云推送、极光推送,它们都是demo中集成后,可以正常接收推送,

即使我们把程序退出,或者长按Home键清空最近程序后依旧可以接收。
但是我自己用xmpp,参考开源的项目实现的Android端接收推送时,正常打开程序和
关闭程序时都是可以收到推送,如果长按Home键清空程序的话,就收不到程序了,好像是
后台接收推送的service被清掉了,但是我的service是startService开启的,配置文件中的
process属性也设置的“:message”,这样还是不行,求解???

7个回答

bdmh
bdmh   Ds   Rxr 2016.04.21 14:40

你要增加服务的复活几率,也就是网上常说的杀不死的服务,但是绝对杀不死是不可能的,你可以接收一些系统广播,然后启动服务,现在常用的推送服务都是这样

A52728820
A52728820 我看了百度和极光的说明,了解这个原理,只是不明白为什么长按Home键清除的程序到底是什么意思
一年多之前 回复
molashaonian
molashaonian   2016.04.21 16:45

在配置文件中启动服务,可以参考极光推送的demo

A52728820
A52728820 这个应该没什么太大关系吧,因为现在的情况是不同情况下关闭程序后能不能接收推送。。
一年多之前 回复
guokehello
guokehello   2016.04.21 22:00

搞一个BroadCastRecviver,接收系统的ACTION_TIME_TICK,每次收到之后检查你服务是否在运行,如果停止运行就启动它。

A52728820
A52728820 这个方法有点流氓。。。能提高service的存活时间
一年多之前 回复
guokehello
guokehello   2016.04.21 22:00

搞一个BroadCastRecviver,接收系统的ACTION_TIME_TICK,每次收到之后检查你服务是否在运行,如果停止运行就启动它。

crazy1235
crazy1235   Ds   Rxr 2016.04.23 10:51

尽量保证你的service“活着”~~

A52728820
A52728820 这个我也知道。。。但是它总是死了..
一年多之前 回复
baiyuliang2013
baiyuliang2013   2016.05.06 10:23

你这种情况是正常的,总之是尽量保活你的Service,至于第三方的Service如何保活的,这个属于机密技术,如果你不会,只能参考网上的方法去提高复活几率

SEU_Calvin
SEU_Calvin   2016.10.30 19:26
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!