我一直在查看文档,有时onStartCommand()
会返回START_NOT_STICKY
,有时会返回以下内容:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
return super.onStartCommand(intent, flags, startId);
}
我现在很困惑为什么有些服务返回super.onStartCommand(intent, flags, startId);
答案 0 :(得分:10)
这完全取决于你想要什么。 documentation说:
为了向后兼容,默认实现调用onStart(Intent,int)并返回START_STICKY或 START_STICKY_COMPATIBILITY。
因此,返回super.onStartCommand()
相当于返回START_STICKY
。如果您不想要默认行为,则可以返回另一个常量。
答案 1 :(得分:1)
最常用的是
Service.START_STICKY将在Android系统由于任何原因终止时重新启动。 服务。START_NOT_STICKY将一直运行,直到有待处理的作品为止。 服务。START_REDELIVER_INTENT与服务类似。START_STICKY,但原始Intent重新传递到onStartCommand方法。
答案 2 :(得分:0)
Service.START_STICKY
>> the system restarts the service with everything refresh not using the previous intent.
Service.START_NOT_STICKY
>> the system does not restarts the service.
Service.START_REDELIVER_INTENT
>>the system restarts the service with using the previous intent.`enter code here