【问题标题】:What's the best practice - Should IntentService be stopped when app is closed/killed?最佳实践是什么 - 应用程序关闭/终止时是否应该停止 IntentService?
【发布时间】:2017-08-02 23:26:36
【问题描述】:

我正在开发一个获取 Reddit.com 文章的应用程序。我的服务每 2 小时更新一次。

用户可能每天打开此应用 2-3 次。我认为将服务保持在后台并不是一个好主意。

我的想法是在应用程序启动时启动服务,并且在应用程序运行时(或在最近的应用程序列表中)该服务将运行。当用户杀死/关闭应用程序时,我正在停止服务 [我正在停止警报管理器]。

【问题讨论】:

  • IntentService 在工作完成后自动停止。
  • 是的...我的意思是 AlarmManager.repeating 一次又一次地启动它。

标签: android intentservice


【解决方案1】:

最好的解决方案是使用警报管理器并在 x 时间后调用意图服务并获取更新的数据并将其存储在本地数据库中。 Intent 服务不需要停止,一旦您的任务完成,即使出现错误,它也会自动停止

【讨论】:

    【解决方案2】:

    如果您使用 Intent 服务不需要停止,它会在工作完成后自动停止。请阅读下面有关 Intent 服务的信息

    IntentService 是 Service 的基类,可按需处理异步请求(表示为 Intent )。客户端通过 startService(Intent) 调用发送请求;服务根据需要启动,使用工作线程依次处理每个 Intent,并在工作结束时自行停止。

    【讨论】:

    • 是的。我有每隔 2 小时运行一次服务的 AlarmManager。即使我的应用程序已关闭/终止,AlarmManager 仍在运行。所以问题是:这对性能有好处还是我必须停止 AlarmManager?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2010-10-27
    • 2012-02-11
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多