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服务如何对未处理的异常做出反应?的主要内容,如果未能解决你的问题,请参考以下文章
如何从服务器端下载 zip 文件到客户端(django 做出反应)