startId:代表启动服务的次数,由系统生成。
stopSelf(int startId):
在其参数startId跟最后启动该service时生成的ID相等时才会执行停止服务。
stopSelf():直接停止服务。
使用场景:
如果同时有多个服务启动请求发送到onStartCommand(),不应该在处理完一个请求后调用stopSelf();因为在调用此函数销毁service之前,可能service又接收到新的启动请求,如果此时service被销毁,新的请求将得不到处理。此情况应该调用stopSelf(int startId)。请参见:IntentService
本文介绍了Android服务(Service)的启动与停止机制,包括startId的概念及其作用,stopSelf(int startId)与stopSelf()的区别及应用场景。对于多次启动请求的情况,推荐使用stopSelf(int startId)来避免服务意外终止导致的新请求无法处理的问题。
1468

被折叠的 条评论
为什么被折叠?



