首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android上长期运行服务的最佳架构

Android上长期运行服务的最佳架构
EN

Stack Overflow用户
提问于 2012-10-02 22:48:20
回答 1查看 4.2K关注 0票数 17

我希望得到一些关于如何处理操作系统杀死长期运行服务的指导。

业务场景:

应用程序记录BTT曲目,该曲目可能持续数小时。它还可以在地图上显示轨迹以及相关的统计数据。

应用程序用户界面使用户能够开始/停止轨道记录并查看地图上的实时轨道。

在开始音轨记录后,用户可以退出应用程序并关闭屏幕(以节省电力),并且只有一个服务将继续运行以保持记录更新到数据库(如图所示),直到用户再次启动该活动并要求停止记录,这导致服务终止。

问题:

经过40分钟到一个半小时的可变时间后,录制服务会在没有任何警告的情况下被终止。由于BTT出游可能需要几个小时,这会导致轨迹记录不完整。

一些其他信息:

服务使用START_STICKY启动,并获取一个PARTIAL_WAKE_LOCK,并在与主活动相同的进程中运行。

以用户定义的速率(从1秒到几分钟)获取(并记录)新位置。我从Android文档中了解到,这是长时间运行服务的预期操作系统行为。

问题:

要使行为良好的应用程序能够满足业务场景需求,最好的体系结构设计方法是什么?

我可以想到几个选择(我不喜欢它们中的任何一个),但我希望有人指导我如何面对和解决类似的问题:

  • 使用广播接收器(如果可能,最好连接到位置管理器)使服务仅在获取新位置时运行?
  • 不允许用户离开主要活动(导致pour user experience)?
  • Have a alarm broadcast receiver在需要时重新启动服务?

感谢所有能在这个主题上分享一些智慧的人。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12692636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档