我希望得到一些关于如何处理操作系统杀死长期运行服务的指导。
业务场景:
应用程序记录BTT曲目,该曲目可能持续数小时。它还可以在地图上显示轨迹以及相关的统计数据。
应用程序用户界面使用户能够开始/停止轨道记录并查看地图上的实时轨道。
在开始音轨记录后,用户可以退出应用程序并关闭屏幕(以节省电力),并且只有一个服务将继续运行以保持记录更新到数据库(如图所示),直到用户再次启动该活动并要求停止记录,这导致服务终止。
问题:
经过40分钟到一个半小时的可变时间后,录制服务会在没有任何警告的情况下被终止。由于BTT出游可能需要几个小时,这会导致轨迹记录不完整。
一些其他信息:
服务使用START_STICKY
启动,并获取一个PARTIAL_WAKE_LOCK
,并在与主活动相同的进程中运行。
以用户定义的速率(从1秒到几分钟)获取(并记录)新位置。我从Android文档中了解到,这是长时间运行服务的预期操作系统行为。
问题:
要使行为良好的应用程序能够满足业务场景需求,最好的体系结构设计方法是什么?
我可以想到几个选择(我不喜欢它们中的任何一个),但我希望有人指导我如何面对和解决类似的问题:
感谢所有能在这个主题上分享一些智慧的人。
https://stackoverflow.com/questions/12692636
复制相似问题