0

我正在编写一个记录服务,它可以在意图中获取额外的数据并适当地发挥作用。我使用 START_REDELIVER_INTENT 以便在每个启动命令上我都使用与原始意图相同的设置开始录制,但我必须知道当前调用 onStartCommand 是由于显式 startService 还是进程崩溃。

所以我的问题是如何区分由 startService 请求引起的 onStartCommand 调用和系统在服务崩溃后调用的 onStartCommand 调用之间没有明确的 stopSelf\stopService?

4

1 回答 1

1

查看 onStartCommand 的 flags 参数。

如果为 0,则为“正常”启动。

如果标志包含 START_FLAG_REDELIVERY,那么它是在服务被杀死并重新启动后重新交付的意图。

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

于 2013-12-20T04:31:41.087 回答