android中service常驻 50
如题,因为应用中有一个推送的功能,所以我得让接受推送的服务一直在后台跑啊,但是清理的话会把service给kill掉,然后推送就接收不到了。还有个问题就是,service...
如题,因为应用中有一个推送的功能,所以我得让接受推送的服务一直在后台跑啊,但是清理的话会把service给kill掉,然后推送就接收不到了。
还有个问题就是,service里要保存值,但是我得值是存在Application里面的,而Application的生命周期是跟应用相同的,这样算是强引用吧,会不会造成内存泄露或者非法内存呢?求解答 展开
还有个问题就是,service里要保存值,但是我得值是存在Application里面的,而Application的生命周期是跟应用相同的,这样算是强引用吧,会不会造成内存泄露或者非法内存呢?求解答 展开
2015-07-10 · 知道合伙人教育行家
关注
展开全部
在AndroidManifest中声明Activity或者Service时,定义android:process属性
格式:android:process=":{进程名字}",这样就能运行在其他进程了
详见:http://developer.android.com/guide/topics/manifest/service-element.html
当把service跑在其他进程后,就可解决,方法参考1
按推荐做法的话,可以像Google提供的绝大多数服务那样,使用Content Provider,具体使用方式请自行搜索.另外,可以采用AIDL跟其他进程的Service直接进行通信,我们之前的做法会做一套序列/反序列化的东西在公共Service和其他普通app进行通信(当然也是通过AIDL).至于Service可以不用单独装,在你的业务app里捆绑一个小的Service也就可以了
http://segmentfault.com/q/1010000000415917
格式:android:process=":{进程名字}",这样就能运行在其他进程了
详见:http://developer.android.com/guide/topics/manifest/service-element.html
当把service跑在其他进程后,就可解决,方法参考1
按推荐做法的话,可以像Google提供的绝大多数服务那样,使用Content Provider,具体使用方式请自行搜索.另外,可以采用AIDL跟其他进程的Service直接进行通信,我们之前的做法会做一套序列/反序列化的东西在公共Service和其他普通app进行通信(当然也是通过AIDL).至于Service可以不用单独装,在你的业务app里捆绑一个小的Service也就可以了
http://segmentfault.com/q/1010000000415917
追问
试过,没反应啊
追答
哦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询