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

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

【问题讨论】:

    标签: android service location


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-10-31
      • 2016-10-22
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多