官网有关于Service onStartCommand 方法返回值的详细介绍,大概都是系统对
Service回收后再次重启相关的意思吧。但是我想验证系统回收后重启Service的行为,
请问怎么模拟这种行为?
首先,用模拟器来模拟,不要用真机,真机系统不一样,有可能改变了原生的
然后启动你要模拟的服务
按下Home键,切到后台
再调出最近运行的任务,清掉,OK了
返回值三种:
START_STICKY:粘性服务,被意外杀死后,服务会在资源足够的情况下重建,不会重传intent
START_REDELIVER_INTENT:粘性服务, 被意外杀死后,服务会在资源足够的情况下重建,同时会重传intent
START_NOT_STICKY:非粘性服务,被意外中止后,服务不能自动重建
默认情况下,好像返回的是:STAET_STICKY,即会再次启动Service,但如果在onStartCommand方法中,获取了Intent,但没进行null判断会报错的
Service程序打包生成一个APK,安装在机器上面,用adb命令将logcat打印出来就可以了
楼主,明确告诉你,不同的Android版本对Service处理是不一样的。也别切出后手动杀,Android对手动杀和系统杀的处理也不一样,你手动杀了,Android系统会禁止服务再启动,直到你手动启动APP。