【发布时间】:2013-04-19 11:48:32
【问题描述】:
我知道服务崩溃行为在 android 中很常见,如果发生崩溃,服务将自动重启。
我有三个服务(A、B、C)在启动时运行,一个服务(A)启动另外两个服务(B 和 C)。所以我的问题是,如果一项服务崩溃,那么其他两项服务同时崩溃是否会产生影响?
当我测试这些服务时,80% 的时间如果我的服务 A 崩溃,那么其他两个服务也会崩溃,而 20% 的时间,一次只有一个服务 (A/B/C) 崩溃。
这些服务在崩溃时的正确行为是什么?
【问题讨论】:
-
当您说“崩溃”时,您的意思是存在错误,还是仅仅意味着服务停止?如果因错误而崩溃,请发布您的 logcat 输出。
-
通常在长时间运行后,如果内存不足,则android服务崩溃,它们将自动重启...我的服务没有因错误而崩溃...如果设备内存崩溃低所以要回收内存
-
根据文档,服务通常执行一项任务,当该任务完成时,它们会自行停止。也许你应该看看你的服务试图完成什么,以及它们是否因为完成了工作而停止了自己。还要看看为什么内存越来越低。另外请注意,即使服务 A 被破坏,服务 B 和 C 也可以继续运行。
-
我不会在任何地方停止我的服务...我希望它们一直运行。