如果Android服务崩溃,它会关闭正在运行的应用程序吗?

时间:2015-01-15 12:22:06

标签: android android-intent service

我正在为Android应用程序组件编写service,我希望我的应用程序不会因为服务中的任何错误而崩溃。默认情况下,应用程序受到保护,不会受到后台服务的任何错误行为的影响。

2 个答案:

答案 0 :(得分:9)

要回答您的问题,。如果您的应用程序中的服务崩溃,您的应用程序将被终止。
要提供解决方案,请不要让服务崩溃。我相信如果你可以阻止整个应用程序的使用,你可以防止服务崩溃。使用try-catch或其他编程方法来处理异常。如果代码中有任何特定内容需要帮助我们,请告诉我们。

更新:我假设您正在使用"单一流程模型"。 正如评论所暗示的那样,还有更多内容。如果该流程中的服务崩溃,您的流程将被终止。如果主线程在同一进程中运行,您的应用程序将被终止 默认情况下,Android在整个应用程序中使用相同的过程在这种情况下,如果发生任何异常(因为进程崩溃),应用程序将被终止。您可以为清单下的不同活动指定不同的流程(如果您"真的"需要它)。
有关如何执行此操作的详细信息,请参阅Process and thread

答案 1 :(得分:2)

一种选择是在与应用程序其余部分分开的进程中运行Service。如果您的Service崩溃,这不会直接导致您的应用崩溃(即:您的活动)。但是,您需要弄清楚Service崩溃后应用应如何继续运行。当然,您的应用可以尝试重新启动Service和/或采取其他措施。

要执行此操作,只需将其添加到清单中的<service>声明:

android:process=":remote"