android服务如何对未处理的异常做出反应?

Posted

技术标签:

【中文标题】android服务如何对未处理的异常做出反应?【英文标题】:how do android service react to unhandled exception? 【发布时间】:2012-02-04 05:52:06 【问题描述】:

我有一项服务可以使用位置更新内部数据库,然后将其发送到 Web 数据库。大约一小时到 5 小时后,应用程序停止强制关闭并从任务管理器中消失。服务如何对未处理的异常做出反应,因为它可能正在停止我的程序?

【问题讨论】:

【参考方案1】:

该服务将消失,因此这可以解释您的观察。如果您可以访问 logcat,您将看到堆栈跟踪。或者尝试捕获异常并将一些日志写入 catch 块中的文件。

但是,如果服务未绑定到活动,android 可能会在需要资源时终止服务。

以下内容摘自这里http://developer.android.com/guide/topics/fundamentals/services.html

“Android系统只会在内存不足的情况下强制停止服务,并且必须为具有用户焦点的活动恢复系统资源。如果服务绑定到具有用户焦点的活动,则不太可能被杀死,如果服务被声明在前台运行(稍后讨论),那么它几乎永远不会被杀死。否则,如果服务已启动并且长时间运行,那么系统将降低其在列表中的位置随着时间的推移,后台任务将变得非常容易被杀死——如果你的服务已经启动,那么你必须设计它来优雅地处理系统重启。如果系统杀死你的服务,它会在资源可用时立即重新启动它再次(尽管这也取决于您从 onStartCommand() 返回的值,稍后将讨论)。”

【讨论】:

以上是关于android服务如何对未处理的异常做出反应?的主要内容,如果未能解决你的问题,请参考以下文章

API Gateway 500 对未处理异常的响应

如何在服务器端做出反应来渲染图像?

反应钩子。无法对未安装的组件执行 React 状态更新

如何从服务器端下载 zip 文件到客户端(django 做出反应)

React-Apollo - 查询 - renderProp:反应警告:无法对未安装的组件执行反应状态更新

Android 捕捉app系统中未处理的异常