区分onStartCommand的调用

时间:2013-11-09 15:16:38

标签: android service

我正在编写录制服务,可以在意图和功能中正确获取其他数据。我使用START_REDELIVER_INTENT,以便在每次启动命令时,我使用与原始意图相同的设置开始录制,但我必须知道onStartCommand的当前调用是由于显式startService还是进程崩溃。

所以我的问题是如何区分由于startService请求而导致的onStartCommand的调用,以及系统在服务崩溃后关闭而没有显式stopSelf \ stopService时调用的onStartCommand调用?

1 个答案:

答案 0 :(得分:1)

查看onStartCommand的flags参数。

如果为0,则为“正常”开始。

如果标志包含START_FLAG_REDELIVERY,那么在服务被终止并重新启动后,它就是一个重新传递的意图。

如果标志包含START_FLAG_RETRY,那么它是一个重新尝试的意图,可能是在崩溃之后但可能还有其他情况。