如果 Android 服务崩溃,它会导致 运行 所在的应用程序崩溃吗?
If Android service crashes will it bring down App on which it is running?
我正在为 Android 应用程序组件编写 service,我希望我的应用程序不会因为任何服务故障而崩溃。默认情况下,应用程序是否受到保护,免受后台服务的任何错误行为影响。
回答你的问题,是。如果应用程序中的服务崩溃,您的应用程序将被终止。
要提供解决方案,请不要让服务崩溃。我相信如果你能阻止整个应用程序的其余部分,你就可以防止服务崩溃。使用 try-catch
或其他编程方法来处理异常。让我们知道代码中的任何特定内容是否需要帮助才能达到这些目的。
更新: 我假设您使用的是 "single process model"。
正如评论所暗示的那样,还有更多。如果该进程中的服务崩溃,您的 进程 将被终止。如果主线程 运行ning 在同一进程下,您的应用程序将被终止。
默认情况下,Android 在整个应用程序中使用相同的进程。在这种情况下,如果发生任何异常(因为进程崩溃),应用程序将被终止。您可以为清单下的不同活动指定不同的进程运行(如果您"really"需要它)。
有关如何操作的更多详细信息,请参阅 Process and thread。
一种选择是 运行 您的 Service
与应用程序的其余部分分开处理。如果您的 Service
崩溃,这不会直接导致您的应用程序崩溃(即:您的活动)。但是,您随后需要弄清楚 Service
崩溃后您的应用程序应如何继续运行。当然,你的应用可以尝试重启 Service
and/or 采取其他措施。
为此,只需将其添加到清单中的 <service>
声明中:
android:process=":remote"
我正在为 Android 应用程序组件编写 service,我希望我的应用程序不会因为任何服务故障而崩溃。默认情况下,应用程序是否受到保护,免受后台服务的任何错误行为影响。
回答你的问题,是。如果应用程序中的服务崩溃,您的应用程序将被终止。
要提供解决方案,请不要让服务崩溃。我相信如果你能阻止整个应用程序的其余部分,你就可以防止服务崩溃。使用 try-catch
或其他编程方法来处理异常。让我们知道代码中的任何特定内容是否需要帮助才能达到这些目的。
更新: 我假设您使用的是 "single process model"。
正如评论所暗示的那样,还有更多。如果该进程中的服务崩溃,您的 进程 将被终止。如果主线程 运行ning 在同一进程下,您的应用程序将被终止。
默认情况下,Android 在整个应用程序中使用相同的进程。在这种情况下,如果发生任何异常(因为进程崩溃),应用程序将被终止。您可以为清单下的不同活动指定不同的进程运行(如果您"really"需要它)。
有关如何操作的更多详细信息,请参阅 Process and thread。
一种选择是 运行 您的 Service
与应用程序的其余部分分开处理。如果您的 Service
崩溃,这不会直接导致您的应用程序崩溃(即:您的活动)。但是,您随后需要弄清楚 Service
崩溃后您的应用程序应如何继续运行。当然,你的应用可以尝试重启 Service
and/or 采取其他措施。
为此,只需将其添加到清单中的 <service>
声明中:
android:process=":remote"