有没有办法检测我的Android服务因崩溃而重启的时间? 重启后服务本身可以知道吗?或者客户端应用程序可以获取此信息吗?
我尝试在服务中使用START_FLAG_REDELIVERY标志,但我不确定它是如何工作的。
答案 0 :(得分:3)
来自onStartCommand(Intent intent, int flags, int startId)
documentation:
参数
intent - 提供给startService(Intent)的Intent,如 给出。 如果服务在其之后重新启动,则此值可能为null 过程已经消失,它之前已经返回了除了之外的任何内容 START_STICKY_COMPATIBILITY。
因此,如果您重新启动服务,无论出于何种原因(并且它已经开始粘滞),它将使用空目标重新启动。
答案 1 :(得分:0)
检测服务何时重启?这可以通过手动或以编程方式解析logcat来完成。根据导致“崩溃”的原因,可能还有其他方式......
服务重启后能否知道自己?是的,通过onCreate函数中收到的重新传递的意图。