Service的生命周期onStartCommand开启两次

1.先记录一下使用的场景:

App里面有个Service 里面封装了Socket,用来接收服务器推送信息,其onStartCommand的模式是START_STICKY(保活),用的Socket框架mina,自己封装了。服务的开启放在了application中。

2.运行情况

  • 在正常起开Socket的时候onStartCommand只走一次。

  • 当呼出多任务滑动杀死APP后,则APP后台还会重启,因为我前面说过的设置了保活策略模式(有待检测其有效性),就会导致onStartCommand的生命周期走两次,其中在杀死的时候并没有走onDestroy。

3.模拟情况

新建立了个Service 的Demo 并没有mina Socket框架,同样的情况,均按照正常的生命周期执行。

分析,由于在Service中使用了Socket,使得在杀死APP的时候并没有使得Socket彻底杀死,因为没有onDestroy方法,确定的是走了APPlication中的开启服务的方法,这样会走一次onStartCommand,但是走了两次实在是想不通。

1.第一次正常启动:

服务的生命周期方法:onStartCommand---22874-22874

2.呼出多任务后滑动APP结束任务:

重启后的进程PID 一样

服务的生命周期方法:onStartCommand---23094-23094

服务的生命周期方法:onStartCommand---23094-23094

两次的onStartCommand事件时间几毫秒内,有知道的请告知,谢谢。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值